Class: Web::Connection::CookieHash

Inherits:
Hash show all
Defined in:
lib/web/connection.rb

Instance Method Summary collapse

Methods inherited from Hash

#__index, #assert_includes, #compare_includes?

Constructor Details

#initialize(values) ⇒ CookieHash

Returns a new instance of CookieHash.



824
825
826
827
# File 'lib/web/connection.rb', line 824

def initialize( values )
  super([])
  update(values)
end

Instance Method Details

#update(values) ⇒ Object



829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
# File 'lib/web/connection.rb', line 829

def update(values)
  if values.kind_of? Hash
    super(values)
  elsif values
    raw_cookie = values.to_s
    raw_cookie.split(/; /).each do |pairs|
      name, values = pairs.split('=',2)
      name = Web::unescape(name)
      values ||= ""
      values = values.split('&').collect{|v| Web::unescape(v) }
      if self.has_key?(name)
        self[name].push(*values)
      else
        self[name] = values
      end
    end
  end
end

#update_by_addcookie(line) ⇒ Object



848
849
850
851
# File 'lib/web/connection.rb', line 848

def update_by_addcookie(line)
  line.gsub!( /;.*$/, '' )
  self.update(line)
end