class ASeriesOfTubes::Tubes::Tube
Attributes
action[R]
controller[R]
method[R]
pattern[R]
Public Class Methods
new(pattern, method, controller, action)
click to toggle source
# File lib/a_series_of_tubes/tubes/tube.rb, line 6 def initialize pattern, method, controller, action @pattern = pattern @method = method.to_s.upcase @controller = controller @action = action end
Public Instance Methods
matches?(request)
click to toggle source
# File lib/a_series_of_tubes/tubes/tube.rb, line 13 def matches? request self.pattern =~ request.path && request.request_method == self.method end
run(request, response)
click to toggle source
# File lib/a_series_of_tubes/tubes/tube.rb, line 17 def run request, response params = parse_params_from_path request.path controller = self.controller.new request, response, params controller.invoke_action action end
Private Instance Methods
parse_params_from_path(path)
click to toggle source
# File lib/a_series_of_tubes/tubes/tube.rb, line 25 def parse_params_from_path path params = {} matches = self.pattern.match path matches.names.each { |key| params[key] = matches[key] } params end