Module: ActionDispatchJourneyRouterWithFiltering

Defined in:
lib/routing_filter/adapters/routers/journey.rb

Instance Method Summary collapse

Instance Method Details

#find_routes(env) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/routing_filter/adapters/routers/journey.rb', line 2

def find_routes(env)
  path = env.is_a?(Hash) ? env['PATH_INFO'] : env.path_info
  filter_parameters = {}
  original_path = path.dup

  @routes.filters.run(:around_recognize, path, env) do
    filter_parameters
  end

  super(env).map do | route|
    env.parameters.merge(filter_parameters)
    [ route ]
  end.tap do |route|
    # restore the original path
    if env.is_a?(Hash)
      env['PATH_INFO'] = original_path
    else
      env.path_info = original_path
    end
  end
end