Class: Flame::Controller::Cookies

Inherits:
Object
  • Object
show all
Defined in:
lib/flame/controller/cookies.rb

Overview

Helper class for cookies

Instance Method Summary collapse

Constructor Details

#initialize(request_cookies, response) ⇒ Cookies

Create an instance of Cookies

Parameters:

  • request_cookies (Hash{String=>Object})

    cookies from request

  • response (Flame::Dispatcher::Response, Rack::Response)

    response object for cookies setting



11
12
13
14
# File 'lib/flame/controller/cookies.rb', line 11

def initialize(request_cookies, response)
  @request_cookies = request_cookies
  @response = response
end

Instance Method Details

#[](key) ⇒ Object

Get request cookies

Parameters:

  • key (String, Symbol)

    name of cookie

Returns:

  • (Object)

    value of cookie



19
20
21
# File 'lib/flame/controller/cookies.rb', line 19

def [](key)
  @request_cookies[key.to_s]
end

#[]=(key, new_value) ⇒ Object

Set (or delete) cookies for response

Examples:

Set new value to cat cookie

cookies['cat'] = 'nice cat'

Set new value to cat cookie with Max-Age 60 seconds

cookies['cat'] = { value: 'nice cat', max_age: 60 }

Delete cat cookie

cookies['cat'] = nil

Parameters:

  • key (String, Symbol)

    name of cookie

  • new_value (Object, Hash, nil)

    value of cookie or Hash with :value and options



32
33
34
35
36
37
38
39
40
41
# File 'lib/flame/controller/cookies.rb', line 32

def []=(key, new_value)
  case new_value
  when NilClass
    @response.delete_cookie(key.to_s, path: '/')
  when Hash
    @response.set_cookie(key.to_s, new_value)
  else
    @response.set_cookie(key.to_s, value: new_value, path: '/')
  end
end