Class: ActionController::CookieJar

Inherits:
Hash
  • Object
show all
Defined in:
lib/action_controller/cookies.rb

Overview

:nodoc:

Instance Method Summary collapse

Constructor Details

#initialize(controller) ⇒ CookieJar

Returns a new instance of CookieJar.



59
60
61
62
63
# File 'lib/action_controller/cookies.rb', line 59

def initialize(controller)
  @controller, @cookies = controller, controller.request.cookies
  super()
  update(@cookies)
end

Instance Method Details

#[](name) ⇒ Object

Returns the value of the cookie by name, or nil if no such cookie exists.



66
67
68
# File 'lib/action_controller/cookies.rb', line 66

def [](name)
  super(name.to_s)
end

#[]=(key, options) ⇒ Object

Sets the cookie named name. The second argument may be the very cookie value, or a hash of options as documented above.



72
73
74
75
76
77
78
79
80
81
82
# File 'lib/action_controller/cookies.rb', line 72

def []=(key, options)
  if options.is_a?(Hash)
    options.symbolize_keys!
  else
    options = { :value => options }
  end

  options[:path] = "/" unless options.has_key?(:path)
  super(key.to_s, options[:value])
  @controller.response.set_cookie(key, options)
end

#delete(key, options = {}) ⇒ Object

Removes the cookie on the client machine by setting the value to an empty string and setting its expiration date into the past. Like []=, you can pass in an options hash to delete cookies with extra data such as a :path.



87
88
89
90
91
92
# File 'lib/action_controller/cookies.rb', line 87

def delete(key, options = {})
  options.symbolize_keys!
  options[:path] = "/" unless options.has_key?(:path)
  super(key.to_s)
  @controller.response.delete_cookie(key, options)
end