class HTTP::CookieJar::AbstractStore

An abstract superclass for all store classes.

Public Class Methods

implementation(symbol) click to toggle source

Gets an implementation class by the name, optionally trying to load “http/cookie_jar/*_store” if not found. If loading fails, IndexError is raised.

# File lib/http/cookie_jar/abstract_store.rb, line 14
def implementation(symbol)
  @@class_map.fetch(symbol)
rescue IndexError
  begin
    require 'http/cookie_jar/%s_store' % symbol
    @@class_map.fetch(symbol)
  rescue LoadError, IndexError
    raise IndexError, 'cookie store unavailable: %s' % symbol.inspect
  end
end
new(**options) click to toggle source

Called by the constructor of each subclass using super().

Calls superclass method
# File lib/http/cookie_jar/abstract_store.rb, line 44
def initialize(options = nil)
  super() # MonitorMixin
  options ||= {}
  @logger = options[:logger]
  # Initializes each instance variable of the same name as option
  # keyword.
  default_options.each_pair { |key, default|
    instance_variable_set("@#{key}", options.fetch(key, default))
  }
end

Public Instance Methods

add(cookie) click to toggle source

Implements HTTP::CookieJar#add().

This is an abstract method that each subclass must override.

# File lib/http/cookie_jar/abstract_store.rb, line 63
def add(cookie)
  # self
end
cleanup(session = false) click to toggle source

Implements HTTP::CookieJar#cleanup().

This is an abstract method that each subclass must override.

# File lib/http/cookie_jar/abstract_store.rb, line 113
def cleanup(session = false)
  # if session
  #   select { |cookie| cookie.session? || cookie.expired? }
  # else
  #   select(&:expired?)
  # end.each { |cookie|
  #   delete(cookie)
  # }
  # # subclasses can optionally remove over-the-limit cookies.
  # self
end
clear() click to toggle source

Implements HTTP::CookieJar#clear().

This is an abstract method that each subclass must override.

# File lib/http/cookie_jar/abstract_store.rb, line 106
def clear
  # self
end
delete(cookie) click to toggle source

Implements HTTP::CookieJar#delete().

This is an abstract method that each subclass must override.

# File lib/http/cookie_jar/abstract_store.rb, line 70
def delete(cookie)
  # self
end
each(uri = nil) { |cookie| ... } click to toggle source

Iterates over all cookies that are not expired.

An optional argument uri specifies a URI object indicating the destination of the cookies being selected. Every cookie yielded should be good to send to the given URI, i.e. cookie.valid_for_uri?(uri) evaluates to true.

If (and only if) the uri option is given, last access time of each cookie is updated to the current time.

This is an abstract method that each subclass must override.

# File lib/http/cookie_jar/abstract_store.rb, line 85
def each(uri = nil, &block) # :yield: cookie
  # if uri
  #   ...
  # else
  #   synchronize {
  #     ...
  #   }
  # end
  # self
end
empty?() click to toggle source

Implements HTTP::CookieJar#empty?().

# File lib/http/cookie_jar/abstract_store.rb, line 98
def empty?
  each { return false }
  true
end
initialize_copy(other) click to toggle source

This is an abstract method that each subclass must override.

# File lib/http/cookie_jar/abstract_store.rb, line 56
def initialize_copy(other)
  # self
end

Private Instance Methods

default_options() click to toggle source

Defines options and their default values.

# File lib/http/cookie_jar/abstract_store.rb, line 35
def default_options
  # {}
end