Class: Hanami::Action::Request::Session

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/hanami/action/request/session.rb

Overview

Wrapper for Rack-provided sessions, allowing access using symbol keys.

Since:

  • 2.3.0

Instance Method Summary collapse

Constructor Details

#initialize(session) ⇒ Session

Returns a new instance of Session.

Since:

  • 2.3.0



28
29
30
# File 'lib/hanami/action/request/session.rb', line 28

def initialize(session)
  @session = session
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, *args, &block) ⇒ Object (private)

Provides a fallback for any methods not handled by the def_delegators.

Since:

  • 2.3.0



54
55
56
57
58
59
60
# File 'lib/hanami/action/request/session.rb', line 54

def method_missing(method_name, *args, &block)
  if @session.respond_to?(method_name)
    @session.send(method_name, *args, &block)
  else
    super
  end
end

Instance Method Details

#==(other) ⇒ Object

Since:

  • 2.3.0



47
48
49
# File 'lib/hanami/action/request/session.rb', line 47

def ==(other)
  Utils::Hash.deep_symbolize(@session) == Utils::Hash.deep_symbolize(other)
end

#[](key) ⇒ Object

Since:

  • 2.3.0



32
33
34
# File 'lib/hanami/action/request/session.rb', line 32

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

#[]=(key, value) ⇒ Object

Since:

  • 2.3.0



36
37
38
# File 'lib/hanami/action/request/session.rb', line 36

def []=(key, value)
  @session[key.to_s] = value
end

#key?(key) ⇒ Boolean Also known as: has_key?, include?

Returns:

  • (Boolean)

Since:

  • 2.3.0



40
41
42
# File 'lib/hanami/action/request/session.rb', line 40

def key?(key)
  @session.key?(key.to_s)
end