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:



565
566
567
# File 'lib/roda.rb', line 565

def _request
  @_request
end

#_responseObject (readonly) Also known as: response

:nodoc:



569
570
571
# File 'lib/roda.rb', line 569

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.



504
505
506
507
508
509
510
# File 'lib/roda.rb', line 504

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.



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

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.



523
524
# File 'lib/roda.rb', line 523

def _roda_main_route(_)
end

#_roda_run_main_route(r) ⇒ Object

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



528
529
530
# File 'lib/roda.rb', line 528

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.



533
534
535
536
537
538
539
540
# File 'lib/roda.rb', line 533

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'


550
551
552
# File 'lib/roda.rb', line 550

def env
  @_request.env
end

#initialize(env) ⇒ Object

Create a request and response of the appropriate class



496
497
498
499
500
# File 'lib/roda.rb', line 496

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


561
562
563
# File 'lib/roda.rb', line 561

def opts
  self.class.opts
end

#sessionObject

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

session # => {}


577
578
579
# File 'lib/roda.rb', line 577

def session
  @_request.session
end