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

Version Path
http-cookie-1.0.8 lib/http/cookie_jar/abstract_saver.rb
direct7-0.0.18 vendor/bundle/ruby/2.7.0/gems/http-cookie-1.0.5/lib/http/cookie_jar/abstract_saver.rb
direct7-0.0.17 vendor/bundle/ruby/2.7.0/gems/http-cookie-1.0.5/lib/http/cookie_jar/abstract_saver.rb
direct7-0.0.16 vendor/bundle/ruby/2.7.0/gems/http-cookie-1.0.5/lib/http/cookie_jar/abstract_saver.rb
http-cookie-1.0.7 lib/http/cookie_jar/abstract_saver.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/http-cookie-1.0.6/lib/http/cookie_jar/abstract_saver.rb
http-cookie-1.0.6 lib/http/cookie_jar/abstract_saver.rb
direct7-0.0.13 vendor/bundle/ruby/2.7.0/gems/http-cookie-1.0.5/lib/http/cookie_jar/abstract_saver.rb
direct7-0.0.12 vendor/bundle/ruby/2.7.0/gems/http-cookie-1.0.5/lib/http/cookie_jar/abstract_saver.rb
direct7-0.0.11 vendor/bundle/ruby/2.7.0/gems/http-cookie-1.0.5/lib/http/cookie_jar/abstract_saver.rb
http-cookie-1.0.5 lib/http/cookie_jar/abstract_saver.rb
http-cookie-1.0.4 lib/http/cookie_jar/abstract_saver.rb
paynow_sdk-1.1.0 vendor/bundle/ruby/2.7.0/gems/paynow_sdk-1.0.9/vendor/bundle/ruby/2.7.0/gems/http-cookie-1.0.3/lib/http/cookie_jar/abstract_saver.rb
paynow_sdk-1.1.0 vendor/bundle/ruby/2.7.0/gems/paynow_sdk-1.0.9/vendor/cache/ruby/2.7.0/gems/http-cookie-1.0.3/lib/http/cookie_jar/abstract_saver.rb
paynow_sdk-1.1.0 vendor/cache/ruby/2.7.0/gems/http-cookie-1.0.3/lib/http/cookie_jar/abstract_saver.rb
paynow_sdk-1.1.0 vendor/cache/ruby/2.7.0/gems/paynow_sdk-1.0.0/vendor/cache/ruby/2.7.0/gems/http-cookie-1.0.3/lib/http/cookie_jar/abstract_saver.rb
paynow_sdk-1.1.0 vendor/bundle/ruby/2.7.0/gems/http-cookie-1.0.3/lib/http/cookie_jar/abstract_saver.rb
paynow_sdk-1.1.0 vendor/bundle/ruby/2.7.0/gems/paynow_sdk-1.0.9/vendor/cache/ruby/2.7.0/gems/paynow_sdk-1.0.0/vendor/cache/ruby/2.7.0/gems/http-cookie-1.0.3/lib/http/cookie_jar/abstract_saver.rb
paynow_sdk-1.0.9 vendor/bundle/ruby/2.7.0/gems/http-cookie-1.0.3/lib/http/cookie_jar/abstract_saver.rb
paynow_sdk-1.0.9 vendor/cache/ruby/2.7.0/gems/paynow_sdk-1.0.0/vendor/cache/ruby/2.7.0/gems/http-cookie-1.0.3/lib/http/cookie_jar/abstract_saver.rb