Path: blob/master/lib/anemone/cookie_store.rb
19715 views
require 'delegate'1require 'webrick/cookie'23class WEBrick::Cookie4def expired?5!!expires && expires < Time.now6end7end89module Anemone10class CookieStore < DelegateClass(Hash)1112def initialize(cookies = nil)13@cookies = {}14cookies.each { |name, value| @cookies[name] = WEBrick::Cookie.new(name, value) } if cookies15super(@cookies)16end1718def merge!(set_cookie_str)19begin20cookie_hash = WEBrick::Cookie.parse_set_cookies(set_cookie_str).inject({}) do |hash, cookie|21hash[cookie.name] = cookie if !!cookie22hash23end24@cookies.merge! cookie_hash25rescue26end27end2829def to_s30@cookies.values.reject { |cookie| cookie.expired? }.map { |cookie| "#{cookie.name}=#{cookie.value}" }.join(';')31end3233end34end353637