class Hanami::Action::Request

The HTTP request for an action, given to {Action#handle}.

Inherits from ‘Rack::Request`, providing compatibility with Rack functionality.

@see www.rubydoc.info/gems/rack/Rack/Request

@since 0.3.1

Attributes

params[R]

Returns the request’s params.

@return [Params]

@since 2.0.0 @api public

Public Class Methods

new(env:, params:, session_enabled: false) click to toggle source

@since 2.0.0 @api private

Calls superclass method
# File lib/hanami/action/request.rb, line 29
def initialize(env:, params:, session_enabled: false)
  super(env)

  @params = params
  @session_enabled = session_enabled
end

Public Instance Methods

accept() click to toggle source

@since 0.1.0 @api private

# File lib/hanami/action/request.rb, line 110
def accept
  @accept ||= @env[Action::HTTP_ACCEPT] || Action::DEFAULT_ACCEPT
end
accept?(mime_type) click to toggle source

@since 2.0.0 @api private

# File lib/hanami/action/request.rb, line 96
def accept?(mime_type)
  !!::Rack::Utils.q_values(accept).find do |mime, _|
    ::Rack::Mime.match?(mime_type, mime)
  end
end
accept_header?() click to toggle source

@since 2.0.0 @api private

# File lib/hanami/action/request.rb, line 104
def accept_header?
  accept != Action::DEFAULT_ACCEPT
end
flash() click to toggle source

Returns the flash for the request.

@return [Flash]

@raise [MissingSessionError] if sessions are not enabled

@see Response#flash

@since 2.0.0 @api public

# File lib/hanami/action/request.rb, line 86
def flash
  unless session_enabled?
    raise Hanami::Action::MissingSessionError.new("Hanami::Action::Request#flash")
  end

  @flash ||= Flash.new(session[Flash::KEY])
end
id() click to toggle source

Returns the request’s ID

@return [String]

@since 2.0.0 @api public

# File lib/hanami/action/request.rb, line 42
def id
  # FIXME: make this number configurable and document the probabilities of clashes
  @id ||= @env[Action::REQUEST_ID] = SecureRandom.hex(Action::DEFAULT_ID_LENGTH)
end
session() click to toggle source

Returns the session for the request.

@return [Hash] the session object

@raise [MissingSessionError] if the session is not enabled

@see session_enabled? @see Response#session

@since 2.0.0 @api public

Calls superclass method
# File lib/hanami/action/request.rb, line 68
def session
  unless session_enabled?
    raise Hanami::Action::MissingSessionError.new("Hanami::Action::Request#session")
  end

  super
end
session_enabled?() click to toggle source

Returns true if the session is enabled for the request.

@return [Boolean]

@api public @since 2.1.0

# File lib/hanami/action/request.rb, line 53
def session_enabled?
  @session_enabled
end