class HTTP::CookieJar::AbstractStore
An abstract superclass for all store classes.
Public Class Methods
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
Called by the constructor of each subclass using super().
# 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
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
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
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
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
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
Implements HTTP::CookieJar#empty?()
.
# File lib/http/cookie_jar/abstract_store.rb, line 98 def empty? each { return false } true end
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
Defines options and their default values.
# File lib/http/cookie_jar/abstract_store.rb, line 35 def default_options # {} end