Sha256: 880229ad00031d97104ba9ac909a8e395c82a185a6a6bc135c63c2e1c577a81e

Contents?: true

Size: 808 Bytes

Versions: 18

Compression:

Stored size: 808 Bytes

Contents

require 'delegate'
require 'webrick/cookie'

class WEBrick::Cookie
  def expired?
    !!expires && expires < Time.now
  end
end

module Anemone
  class CookieStore < DelegateClass(Hash)

    def initialize(cookies = nil)
      @cookies = {}
      cookies.each { |name, value| @cookies[name] = WEBrick::Cookie.new(name, value) } if cookies
      super(@cookies)
    end

    def merge!(set_cookie_str)
      begin
        cookie_hash = WEBrick::Cookie.parse_set_cookies(set_cookie_str).inject({}) do |hash, cookie|
          hash[cookie.name] = cookie if !!cookie
          hash
        end
        @cookies.merge! cookie_hash
      rescue
      end
    end

    def to_s
      @cookies.values.reject { |cookie| cookie.expired? }.map { |cookie| "#{cookie.name}=#{cookie.value}" }.join(';')
    end

  end
end

Version data entries

18 entries across 18 versions & 5 rubygems

Version Path
sutch-anemone-0.7.2.2 lib/anemone/cookie_store.rb
sutch-anemone-0.7.2.1 lib/anemone/cookie_store.rb
sutch-anemone-0.7.2 lib/anemone/cookie_store.rb
rodneyc-anemone-0.7.1.3 lib/anemone/cookie_store.rb
rodneyc-anemone-0.7.1.2 lib/anemone/cookie_store.rb
rodneyc-anemone-0.7.1.1 lib/anemone/cookie_store.rb
anemone-0.7.2 lib/anemone/cookie_store.rb
anemone-0.7.1 lib/anemone/cookie_store.rb
anemone-0.7.0 lib/anemone/cookie_store.rb
arachni-0.2.4 lib/anemone/cookie_store.rb
arachni-0.2.3 lib/anemone/cookie_store.rb
arachni-0.2.2.2 lib/anemone/cookie_store.rb
anemone-0.6.1 lib/anemone/cookie_store.rb
anemone-0.6.0 lib/anemone/cookie_store.rb
arachni-0.2.2.1 lib/anemone/cookie_store.rb
anemone-0.5.0 lib/anemone/cookie_store.rb
spk-anemone-0.4.0 lib/anemone/cookie_store.rb
anemone-0.4.0 lib/anemone/cookie_store.rb