Class: Route
Instance Attribute Summary collapse
-
#action_name ⇒ Object
readonly
Returns the value of attribute action_name.
-
#controller_class ⇒ Object
readonly
Returns the value of attribute controller_class.
-
#http_method ⇒ Object
readonly
Returns the value of attribute http_method.
-
#pattern ⇒ Object
readonly
Returns the value of attribute pattern.
Instance Method Summary collapse
-
#initialize(pattern, http_method, controller_class, action_name) ⇒ Route
constructor
A new instance of Route.
- #matches?(req) ⇒ Boolean
- #run(req, res) ⇒ Object
Constructor Details
#initialize(pattern, http_method, controller_class, action_name) ⇒ Route
Returns a new instance of Route.
4 5 6 7 |
# File 'lib/laris/router.rb', line 4 def initialize(pattern, http_method, controller_class, action_name) @pattern, @http_method, @controller_class, @action_name = pattern, http_method, controller_class, action_name end |
Instance Attribute Details
#action_name ⇒ Object (readonly)
Returns the value of attribute action_name.
2 3 4 |
# File 'lib/laris/router.rb', line 2 def action_name @action_name end |
#controller_class ⇒ Object (readonly)
Returns the value of attribute controller_class.
2 3 4 |
# File 'lib/laris/router.rb', line 2 def controller_class @controller_class end |
#http_method ⇒ Object (readonly)
Returns the value of attribute http_method.
2 3 4 |
# File 'lib/laris/router.rb', line 2 def http_method @http_method end |
#pattern ⇒ Object (readonly)
Returns the value of attribute pattern.
2 3 4 |
# File 'lib/laris/router.rb', line 2 def pattern @pattern end |
Instance Method Details
#matches?(req) ⇒ Boolean
9 10 11 12 |
# File 'lib/laris/router.rb', line 9 def matches?(req) pattern =~ req.path && http_method == req.request_method.downcase.to_sym end |
#run(req, res) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/laris/router.rb', line 14 def run(req, res) match_data = pattern.match(req.path) route_params = Hash[match_data.names.zip(match_data.captures)] controller = controller_class.new(req, res, route_params) controller.invoke_action(action_name, http_method) end |