class Greed::Cookie::Jar
Public Class Methods
new(\ state = nil, set_cookie_parser: nil, get_current_time: nil, calculate_expiration: nil, determine_domain: nil, determine_path: nil )
click to toggle source
# File lib/greed/cookie/jar.rb, line 14 def initialize(\ state = nil, set_cookie_parser: nil, get_current_time: nil, calculate_expiration: nil, determine_domain: nil, determine_path: nil ) @set_cookie_parser = set_cookie_parser || Parser.new.method(:parse) @get_current_time = get_current_time || ::Time.method(:current) @calculate_expiration = calculate_expiration || ExpirationHandler.new.method(:calculate_expiration) @determine_domain = determine_domain || DomainHandler.new.method(:determine_domain) @determine_path = determine_path || PathHandler.new.method(:determine_path) @cookie_map = state || {} end
Public Instance Methods
dump()
click to toggle source
# File lib/greed/cookie/jar.rb, line 70 def dump garbage_collect @cookie_map.clone end
garbage_collect()
click to toggle source
# File lib/greed/cookie/jar.rb, line 110 def garbage_collect current_time = @get_current_time.call @cookie_map = @cookie_map.map do |domain_name, domain_holder| domain_holder.map do |path_name, path_holder| path_holder.select do |_cookie_name, cookie_record| !cookie_record[:expires] || current_time < cookie_record[:expires] end.yield_self do |filtered_result| break nil unless filtered_result.present? [path_name, filtered_result] end end.compact.to_h.yield_self do |filtered_result| break nil unless filtered_result.present? [domain_name, filtered_result] end end.compact.to_h nil end