class Pendragon::Router::Route::Context

Class for providing helpers like :env, :params and :captures. This class will be available if given application is an kind of Proc. @!visibility private

Attributes

captures[R]

@!visibility private

env[R]

@!visibility private

params[R]

@!visibility private

Public Class Methods

generate_method(name, callable) click to toggle source

@!visibility private

# File lib/pendragon/router.rb, line 166
def self.generate_method(name, callable)
  define_method(name, &callable)
  method = instance_method(name)
  remove_method(name)
  method
end
new(env, params: {}, captures: []) click to toggle source

@!visibility private

# File lib/pendragon/router.rb, line 184
def initialize(env, params: {}, captures: [])
  @env = env
  @params = params
  @captures = captures
end
to_method(*args, callable) click to toggle source

@!visibility private

# File lib/pendragon/router.rb, line 174
def self.to_method(*args, callable)
  unbound = generate_method(args.join(' '), callable)
  if unbound.arity.zero?
    proc { |app, captures| unbound.bind(app).call }
  else
    proc { |app, captures| unbound.bind(app).call(*captures) }
  end
end

Public Instance Methods

trigger(executable) click to toggle source

@!visibility private

# File lib/pendragon/router.rb, line 191
def trigger(executable)
  executable[self, captures]
end