class Rack::Radar::RackRadarCookies
Public Class Methods
new()
click to toggle source
# File lib/rack/radar/cookies.rb, line 6 def initialize @jar = {} end
Public Instance Methods
[](name)
click to toggle source
# File lib/rack/radar/cookies.rb, line 16 def [] name cookies = to_hash cookies[name] && cookies[name].value end
[]=(name, value)
click to toggle source
# File lib/rack/radar/cookies.rb, line 21 def []= name, value persist '%s=%s' % [name, ::Rack::Utils.escape(value)] end
clear()
click to toggle source
# File lib/rack/radar/cookies.rb, line 29 def clear jar nil, [] end
delete(name)
click to toggle source
# File lib/rack/radar/cookies.rb, line 25 def delete name jar nil, jar(nil).reject { |c| c.name == name } end
jar(uri, cookies = nil)
click to toggle source
# File lib/rack/radar/cookies.rb, line 10 def jar uri, cookies = nil host = (((uri && uri.host) || RACK_RADAR__DEFAULT_HOST).split('.')[-2..-1]||[]).join('.').downcase @jar[host] = cookies if cookies @jar[host] ||= [] end
persist(raw_cookies, uri = nil)
click to toggle source
# File lib/rack/radar/cookies.rb, line 39 def persist raw_cookies, uri = nil return unless raw_cookies.is_a?(String) # before adding new cookies, lets cleanup expired ones jar uri, jar(uri).reject { |c| c.expired? } raw_cookies = raw_cookies.strip.split("\n").reject { |c| c.empty? } raw_cookies.each do |raw_cookie| cookie = Cookie.new(raw_cookie, uri) cookie.valid?(uri) || next jar(uri, jar(uri).reject { |existing_cookie| cookie.replaces? existing_cookie }) jar(uri) << cookie end jar(uri).sort! end
to_hash(uri = nil)
click to toggle source
# File lib/rack/radar/cookies.rb, line 60 def to_hash uri = nil jar(uri).inject({}) do |cookies, cookie| cookies.merge((uri ? cookie.dispose_for?(uri) : true) ? {cookie.name => cookie} : {}) end end
to_s(uri = nil)
click to toggle source
# File lib/rack/radar/cookies.rb, line 56 def to_s uri = nil to_hash(uri).values.map { |c| c.raw }.join(';') end