Module: Roda::RodaPlugins::Base::InstanceMethods
- Defined in:
- lib/roda.rb
Overview
Instance methods for the Roda class.
In addition to the listed methods, the following two methods are available:
- request
-
The instance of the request class related to this request. This is the same object yielded by Roda.route.
- response
-
The instance of the response class related to this request.
Instance Attribute Summary collapse
-
#_request ⇒ Object
(also: #request)
readonly
:nodoc:.
-
#_response ⇒ Object
(also: #response)
readonly
:nodoc:.
Instance Method Summary collapse
-
#call(&block) ⇒ Object
instance_exec the route block in the scope of the receiver, with the related request.
-
#env ⇒ Object
The environment hash for the current request.
-
#initialize(env) ⇒ Object
Create a request and response of the appropriate class.
-
#opts ⇒ Object
The class-level options hash.
-
#session ⇒ Object
The session hash for the current request.
Instance Attribute Details
#_request ⇒ Object (readonly) Also known as: request
:nodoc:
266 267 268 |
# File 'lib/roda.rb', line 266 def _request @_request end |
#_response ⇒ Object (readonly) Also known as: response
:nodoc:
270 271 272 |
# File 'lib/roda.rb', line 270 def _response @_response end |
Instance Method Details
#call(&block) ⇒ Object
instance_exec the route block in the scope of the receiver, with the related request. Catch :halt so that the route block can throw :halt at any point with the rack response to use.
240 241 242 243 244 245 246 |
# File 'lib/roda.rb', line 240 def call(&block) catch(:halt) do r = @_request r.block_result(instance_exec(r, &block)) @_response.finish end end |
#env ⇒ Object
The environment hash for the current request. Example:
env['REQUEST_METHOD'] # => 'GET'
251 252 253 |
# File 'lib/roda.rb', line 251 def env @_request.env end |
#initialize(env) ⇒ Object
Create a request and response of the appropriate class
230 231 232 233 234 |
# File 'lib/roda.rb', line 230 def initialize(env) klass = self.class @_request = klass::RodaRequest.new(self, env) @_response = klass::RodaResponse.new end |
#opts ⇒ Object
262 263 264 |
# File 'lib/roda.rb', line 262 def opts self.class.opts end |
#session ⇒ Object
The session hash for the current request. Raises RodaError if no session exists. Example:
session # => {}
278 279 280 |
# File 'lib/roda.rb', line 278 def session @_request.session end |