class Capcoauth::Rails::Routes

Attributes

routes[RW]

Public Class Methods

install!() click to toggle source
# File lib/capcoauth/rails/routes.rb, line 14
def self.install!
  ActionDispatch::Routing::Mapper.send :include, Capcoauth::Rails::Routes::Helper
end
new(routes, &block) click to toggle source
# File lib/capcoauth/rails/routes.rb, line 20
def initialize(routes, &block)
  @routes, @block = routes, block
end

Public Instance Methods

generate_routes!(options) click to toggle source
# File lib/capcoauth/rails/routes.rb, line 24
def generate_routes!(options)
  @mapping = Mapper.new.map(&@block)
  routes.scope options[:scope] || 'auth', as: 'auth' do
    map_routes(:login, :login_routes)
    map_routes(:logout, :logout_routes)
    map_routes(:callback, :callback_routes)
  end
end

Private Instance Methods

callback_routes(mapping) click to toggle source
# File lib/capcoauth/rails/routes.rb, line 59
def callback_routes(mapping)
  routes.resource(
    :callback,
    path: 'callback',
    only: [:show], as: mapping[:as],
    controller: mapping[:controllers]
  )
end
login_routes(mapping) click to toggle source
# File lib/capcoauth/rails/routes.rb, line 41
def login_routes(mapping)
  routes.resource(
    :login,
    path: 'login',
    only: [:show], as: mapping[:as],
    controller: mapping[:controllers]
  )
end
logout_routes(mapping) click to toggle source
# File lib/capcoauth/rails/routes.rb, line 50
def logout_routes(mapping)
  routes.resource(
    :logout,
    path: 'logout',
    only: [:show, :delete], as: mapping[:as],
    controller: mapping[:controllers]
  )
end
map_routes(name, method) click to toggle source
# File lib/capcoauth/rails/routes.rb, line 35
def map_routes(name, method)
  unless @mapping.skipped?(name)
    send method, @mapping[name]
  end
end