Sha256: 0d687b9274310b8af89ae13dc77a64ad168ba7207ea42e583cb08269ffa16a18

Contents?: true

Size: 1.2 KB

Versions: 12

Compression:

Stored size: 1.2 KB

Contents

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)
      @@class_map[class_to_symbol(subclass)] = subclass
    end

    def class_to_symbol(klass)
      klass.name[/[^:]+?(?=Saver$|$)/].downcase.to_sym
    end
  end

  def default_options
    {}
  end
  private :default_options

  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.key?(key) ? options[key] : default)
    }
  end

  def save(io, jar)
    raise
  end

  def load(io, jar)
    raise
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
http-cookie-1.0.0.pre10 lib/http/cookie_jar/abstract_saver.rb
http-cookie-1.0.0.pre9 lib/http/cookie_jar/abstract_saver.rb
http-cookie-1.0.0.pre8 lib/http/cookie_jar/abstract_saver.rb
http-cookie-1.0.0.pre7 lib/http/cookie_jar/abstract_saver.rb
http-cookie-1.0.0.pre6 lib/http/cookie_jar/abstract_saver.rb
http-cookie-1.0.0.pre5 lib/http/cookie_jar/abstract_saver.rb
http-cookie-1.0.0.pre4 lib/http/cookie_jar/abstract_saver.rb
http-cookie-1.0.0.pre3 lib/http/cookie_jar/abstract_saver.rb
http-cookie-1.0.0.pre2 lib/http/cookie_jar/abstract_saver.rb
http-cookie-1.0.0.pre1 lib/http/cookie_jar/abstract_saver.rb
http-cookie-0.1.5 lib/http/cookie_jar/abstract_saver.rb
http-cookie-0.1.4 lib/http/cookie_jar/abstract_saver.rb