class TGauge::Route

Attributes

action_name[R]
controller_class[R]
http_method[R]
pattern[R]

Public Class Methods

new(pattern, http_method, controller_class, action_name) click to toggle source
# File lib/db/router.rb, line 5
def initialize(pattern, http_method, controller_class, action_name)
  @pattern = pattern
  @http_method = http_method
  @controller_class = controller_class
  @action_name = action_name
end

Public Instance Methods

matches?(req) click to toggle source

checks if pattern matches path and method matches request method

# File lib/db/router.rb, line 13
def matches?(req)
  (@pattern =~ req.path) == 0 && req.request_method.downcase == @http_method.to_s
end
run(req, res) click to toggle source

use pattern to pull out route params (save for later?) instantiate controller and call controller action

# File lib/db/router.rb, line 19
def run(req, res)
  match_data = @pattern.match(req.path)
  route_params = {}
  match_data.names.each do |key|
    route_params[key] = match_data[key]
  end

  controller = controller_class.new(req, res, route_params)
  controller.invoke_action(@action_name)
end