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 appopriate 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:
273 274 275 |
# File 'lib/roda.rb', line 273 def _request @_request end |
#_response ⇒ Object (readonly) Also known as: response
:nodoc:
277 278 279 |
# File 'lib/roda.rb', line 277 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.
247 248 249 250 251 252 253 |
# File 'lib/roda.rb', line 247 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'
258 259 260 |
# File 'lib/roda.rb', line 258 def env @_request.env end |
#initialize(env) ⇒ Object
Create a request and response of the appopriate class
237 238 239 240 241 |
# File 'lib/roda.rb', line 237 def initialize(env) klass = self.class @_request = klass::RodaRequest.new(self, env) @_response = klass::RodaResponse.new end |
#opts ⇒ Object
269 270 271 |
# File 'lib/roda.rb', line 269 def opts self.class.opts end |
#session ⇒ Object
The session hash for the current request. Raises RodaError if no session exists. Example:
session # => {}
285 286 287 |
# File 'lib/roda.rb', line 285 def session @_request.session end |