Class: ActionDispatch::Routing::Mapper

Inherits:
Object
  • Object
show all
Defined in:
lib/api_guard/route_mapper.rb

Instance Method Summary collapse

Instance Method Details

#api_guard_routes(options = {}) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/api_guard/route_mapper.rb', line 10

def api_guard_routes(options = {})
  routes_for = options.delete(:for).to_s || 'users'

  controllers = default_controllers(options[:only], options[:except])
  controller_options = options.delete(:controller)

  options[:as] = options[:as] || routes_for.singularize
  options[:path] = options[:path] || routes_for

  api_guard_scope(routes_for) do |mapped_resource|
    scope options do
      generate_routes(mapped_resource, controller_options, controllers)
    end
  end
end

#api_guard_scope(routes_for) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/api_guard/route_mapper.rb', line 26

def api_guard_scope(routes_for)
  mapped_resource = ApiGuard.mapped_resource[routes_for.to_sym].presence ||
                    ApiGuard.map_resource(routes_for, routes_for.classify)

  constraint = lambda do |request|
    request.env['api_guard.mapping'] = mapped_resource
    true
  end

  constraints(constraint) do
    yield(mapped_resource)
  end
end