class ActionDispatch::Routing::Mapper

Public Instance Methods

api_guard_routes(options = {}) click to toggle source
# 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) { |mapped_resource| ... } click to toggle source
# 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

Private Instance Methods

authentication_routes(controller_name = nil) click to toggle source
# File lib/api_guard/route_mapper.rb, line 58
def authentication_routes(controller_name = nil)
  controller_name ||= 'api_guard/authentication'

  post 'sign_in' => "#{controller_name}#create"
  delete 'sign_out' => "#{controller_name}#destroy"
end
default_controllers(only, except) click to toggle source
# File lib/api_guard/route_mapper.rb, line 42
def default_controllers(only, except)
  return only if only

  controllers = %i[registration authentication tokens passwords]
  except ? (controllers - except) : controllers
end
generate_routes(mapped_resource, options, controllers) click to toggle source
# File lib/api_guard/route_mapper.rb, line 49
def generate_routes(mapped_resource, options, controllers)
  options ||= {}
  controllers -= %i[tokens] unless mapped_resource.resource_class.refresh_token_association

  controllers.each do |controller|
    send("#{controller}_routes", options[controller])
  end
end
passwords_routes(controller_name = nil) click to toggle source
# File lib/api_guard/route_mapper.rb, line 72
def passwords_routes(controller_name = nil)
  controller_name ||= 'api_guard/passwords'

  patch 'passwords' => "#{controller_name}#update"
end
registration_routes(controller_name = nil) click to toggle source
# File lib/api_guard/route_mapper.rb, line 65
def registration_routes(controller_name = nil)
  controller_name ||= 'api_guard/registration'

  post 'sign_up' => "#{controller_name}#create"
  delete 'delete' => "#{controller_name}#destroy"
end
tokens_routes(controller_name = nil) click to toggle source
# File lib/api_guard/route_mapper.rb, line 78
def tokens_routes(controller_name = nil)
  controller_name ||= 'api_guard/tokens'

  post 'tokens' => "#{controller_name}#create"
end