Class: Kawaii::RouteMapping

Inherits:
Object
  • Object
show all
Defined in:
lib/kawaii/route_mapping.rb

Overview

Maps route to a handler based on parameters. Supports mapping to blocks and to controller actions.

Instance Method Summary (collapse)

Constructor Details

- (RouteMapping) initialize(mapping, &block)

Returns a new instance of RouteMapping



6
7
8
9
10
11
# File 'lib/kawaii/route_mapping.rb', line 6

def initialize(mapping, &block)
  fail 'Do not provide a block if mapping given' if mapping && block
  fail 'Provide a mapping or a block' unless mapping || block
  @mapping = mapping
  @block = block
end

Instance Method Details

- (Object) resolve



13
14
15
16
17
18
19
20
21
22
# File 'lib/kawaii/route_mapping.rb', line 13

def resolve
  return @block if @block
  controller_name, method = parse(@mapping)
  controller_class = find_controller(controller_name)
  fail "Cannot find controller: #{controller_name}" if controller_class.nil?
  proc do |& _args|
    controller = controller_class.new(params, request)
    controller.send(method)
  end
end