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.

# File lib/http/cookie_jar/abstract_store.rb, line 11
def implementation(symbol)
  case symbol
  when :hash
    HTTP::CookieJar::HashStore
  when :mozilla
    HTTP::CookieJar::MozillaStore
  else
    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 33
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 52
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 102
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 95
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 59
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 74
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 87
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 45
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 24
def default_options
  # {}
end