Class: Hanami::Action::Request
- Inherits:
-
Rack::Request
- Object
- Rack::Request
- Hanami::Action::Request
- Defined in:
- lib/hanami/action/request.rb
Overview
The HTTP request for an action, given to #handle.
Inherits from ‘Rack::Request`, providing compatibility with Rack functionality.
Instance Attribute Summary collapse
-
#params ⇒ Params
readonly
Returns the request’s params.
Instance Method Summary collapse
- #accept ⇒ Object private
- #accept?(mime_type) ⇒ Boolean private
- #accept_header? ⇒ Boolean private
-
#flash ⇒ Flash
Returns the flash for the request.
-
#id ⇒ String
Returns the request’s ID.
-
#initialize(env:, params:, session_enabled: false) ⇒ Request
constructor
private
A new instance of Request.
-
#session ⇒ Hash
Returns the session for the request.
-
#session_enabled? ⇒ Boolean
Returns true if the session is enabled for the request.
Constructor Details
#initialize(env:, params:, session_enabled: false) ⇒ Request
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Request.
29 30 31 32 33 34 |
# File 'lib/hanami/action/request.rb', line 29 def initialize(env:, params:, session_enabled: false) super(env) @params = params @session_enabled = session_enabled end |
Instance Attribute Details
#params ⇒ Params (readonly)
Returns the request’s params.
25 26 27 |
# File 'lib/hanami/action/request.rb', line 25 def params @params end |
Instance Method Details
#accept ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
110 111 112 |
# File 'lib/hanami/action/request.rb', line 110 def accept @accept ||= @env[Action::HTTP_ACCEPT] || Action::DEFAULT_ACCEPT end |
#accept?(mime_type) ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
96 97 98 99 100 |
# 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? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
104 105 106 |
# File 'lib/hanami/action/request.rb', line 104 def accept_header? accept != Action::DEFAULT_ACCEPT end |
#flash ⇒ Flash
Returns the flash for the request.
86 87 88 89 90 91 92 |
# 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 ⇒ String
Returns the request’s ID
42 43 44 45 |
# 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 ⇒ Hash
Returns the session for the request.
68 69 70 71 72 73 74 |
# 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? ⇒ Boolean
Returns true if the session is enabled for the request.
53 54 55 |
# File 'lib/hanami/action/request.rb', line 53 def session_enabled? @session_enabled end |