class Mechanize::CookieStore::Redis

Constants

DEFAULT_NAMESPACE

Public Class Methods

all(options = {}) click to toggle source
# File lib/mechanize/cookie_store/redis.rb, line 16
def self.all(options = {})
  normalized_keys(options).each_with_object([]) do |key, cookies|
    serialized_cookie = connection.get(key)

    if serialized_cookie
      cookie = Marshal.load(serialized_cookie)

      unless cookie_expired?(cookie)
        cookies << cookie
      end
    end
  end
end
connection() click to toggle source
# File lib/mechanize/cookie_store/redis.rb, line 7
def self.connection
  return @store_connection if @store_connection

  namespace = Mechanize::CookieStore.connection_params[:namespace] || DEFAULT_NAMESPACE
  redis_connection  = ::Redis.new(Mechanize::CookieStore.connection_params)

  @store_connection = ::Redis::Namespace.new(namespace, redis: redis_connection)
end
normalized_keys(options = {}) click to toggle source
# File lib/mechanize/cookie_store/redis.rb, line 44
def self.normalized_keys(options = {})
  domain = options[:domain] || "*"
  path   = options[:path]   || "*"
  name   = options[:name]   || "*"

  connection.keys("#{domain}:#{path}:#{name}")
end
save(cookie) click to toggle source
# File lib/mechanize/cookie_store/redis.rb, line 30
def self.save(cookie)
  return if cookie_expired?(cookie)

  key = "#{cookie.domain}:#{cookie.path}:#{cookie.name}"

  connection.set(key, Marshal.dump(cookie)) == "OK"
end