class Hanami::Config::Actions::Sessions

Config for HTTP session middleware in Hanami actions.

@api public @since 2.0.0

Attributes

options[R]

Returns the configured session storage options

@return [Array]

@api public @since 2.0.0

storage[R]

Returns the configured session storage

@return [Symbol]

@api public @since 2.0.0

Public Class Methods

new(storage = nil, *options) click to toggle source

Returns a new ‘Sessions`.

You should not need to initialize this class directly. Instead use {Hanami::Config::Actions#sessions=}.

@example

config.actions.sessions = :cookie, {secret: "xyz"}

@api private @since 2.0.0

# File lib/hanami/config/actions/sessions.rb, line 40
def initialize(storage = nil, *options)
  @storage = storage
  @options = options
end

Public Instance Methods

enabled?() click to toggle source

Returns true if sessions have been enabled.

@return [Boolean]

@api public @since 2.0.0

# File lib/hanami/config/actions/sessions.rb, line 51
def enabled?
  !storage.nil?
end
middleware() click to toggle source

Returns an array of the session storage middleware name and its options, or an empty array if sessions have not been enabled.

@return [Array<(Symbol, Array)>]

@api public @since 2.0.0

# File lib/hanami/config/actions/sessions.rb, line 62
def middleware
  return [] unless enabled?

  [storage_middleware, options].flatten(1)
end

Private Instance Methods

require_storage() click to toggle source
# File lib/hanami/config/actions/sessions.rb, line 77
def require_storage
  require "rack/session/#{storage}"
end
storage_middleware() click to toggle source
# File lib/hanami/config/actions/sessions.rb, line 70
def storage_middleware
  require_storage

  name = Utils::String.classify(storage)
  Utils::Class.load!(name, ::Rack::Session)
end