Class: PathListener::Router
- Inherits:
-
Object
- Object
- PathListener::Router
- Includes:
- Singleton
- Defined in:
- lib/path_listener/router.rb
Instance Method Summary collapse
Instance Method Details
#append_to_ast(request_method, path, block) ⇒ Object
22 23 24 |
# File 'lib/path_listener/router.rb', line 22 def append_to_ast(request_method, path, block) ast << parse_to_nodes(request_method, path, block) end |
#call(env) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/path_listener/router.rb', line 9 def call(env) request_method = env['REQUEST_METHOD'].downcase path = env['REQUEST_PATH'] memo = match(request_method, path) return if memo.nil? match_date = memo[:pattern].match(path) params = Rack::Utils.parse_nested_query(env['QUERY_STRING']) params.merge!(match_date.names.zip(match_date.captures).to_h) memo[:block] && memo[:block].call(ActiveSupport::HashWithIndifferentAccess.new(params)) rescue => _e nil end |