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

Instance Method Summary collapse

Instance Attribute Details

#_requestObject (readonly) Also known as: request

:nodoc:



530
531
532
# File 'lib/roda.rb', line 530

def _request
  @_request
end

#_responseObject (readonly) Also known as: response

:nodoc:



534
535
536
# File 'lib/roda.rb', line 534

def _response
  @_response
end

Instance Method Details

#_roda_handle_main_routeObject

Handle dispatching to the main route, catching :halt and handling the result of the block.



469
470
471
472
473
474
475
# File 'lib/roda.rb', line 469

def _roda_handle_main_route
  catch(:halt) do
    r = @_request
    r.block_result(_roda_run_main_route(r))
    @_response.finish
  end
end

#_roda_handle_routeObject

Treat the given block as a routing block, catching :halt if thrown by the block.



479
480
481
482
483
484
# File 'lib/roda.rb', line 479

def _roda_handle_route
  catch(:halt) do
    @_request.block_result(yield)
    @_response.finish
  end
end

#_roda_main_route(_) ⇒ Object

Default implementation of the main route, usually overridden by Roda.route.



488
489
# File 'lib/roda.rb', line 488

def _roda_main_route(_)
end

#_roda_run_main_route(r) ⇒ Object

Run the main route block with the request. Designed for extension by plugins



493
494
495
# File 'lib/roda.rb', line 493

def _roda_run_main_route(r)
  _roda_main_route(r)
end

#call(&block) ⇒ Object Also known as: _call

Deprecated method for the previous main route dispatch API.



498
499
500
501
502
503
504
505
# File 'lib/roda.rb', line 498

def call(&block)
  # RODA4: Remove
  catch(:halt) do
    r = @_request
    r.block_result(instance_exec(r, &block)) # Fallback
    @_response.finish
  end
end

#envObject

The environment hash for the current request. Example:

env['REQUEST_METHOD'] # => 'GET'


515
516
517
# File 'lib/roda.rb', line 515

def env
  @_request.env
end

#initialize(env) ⇒ Object

Create a request and response of the appropriate class



461
462
463
464
465
# File 'lib/roda.rb', line 461

def initialize(env)
  klass = self.class
  @_request = klass::RodaRequest.new(self, env)
  @_response = klass::RodaResponse.new
end

#optsObject

The class-level options hash. This should probably not be modified at the instance level. Example:

Roda.plugin :render
Roda.route do |r|
  opts[:render_opts].inspect
end


526
527
528
# File 'lib/roda.rb', line 526

def opts
  self.class.opts
end

#sessionObject

The session hash for the current request. Raises RodaError if no session exists. Example:

session # => {}


542
543
544
# File 'lib/roda.rb', line 542

def session
  @_request.session
end