Sha256: 42c8d681d5abb85f73b29de5d5d8f72f07146c1ad832614afddb4211c4518c8e
Contents?: true
Size: 1.63 KB
Versions: 113
Compression:
Stored size: 1.63 KB
Contents
# :markup: markdown # An abstract superclass for all saver classes. class HTTP::CookieJar::AbstractSaver class << self @@class_map = {} # Gets an implementation class by the name, optionally trying to # load "http/cookie_jar/*_saver" if not found. If loading fails, # IndexError is raised. def implementation(symbol) @@class_map.fetch(symbol) rescue IndexError begin require 'http/cookie_jar/%s_saver' % symbol @@class_map.fetch(symbol) rescue LoadError, IndexError raise IndexError, 'cookie saver unavailable: %s' % symbol.inspect end end def inherited(subclass) # :nodoc: @@class_map[class_to_symbol(subclass)] = subclass end def class_to_symbol(klass) # :nodoc: klass.name[/[^:]+?(?=Saver$|$)/].downcase.to_sym end end # Defines options and their default values. def default_options # {} end private :default_options # :call-seq: # new(**options) # # Called by the constructor of each subclass using super(). def initialize(options = nil) options ||= {} @logger = options[:logger] @session = options[:session] # 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 # Implements HTTP::CookieJar#save(). # # This is an abstract method that each subclass must override. def save(io, jar) # self end # Implements HTTP::CookieJar#load(). # # This is an abstract method that each subclass must override. def load(io, jar) # self end end
Version data entries
113 entries across 86 versions & 14 rubygems