Sha256: 6f84eaf33209afc102e1fe78f0c495f1f8ab33d1bcd57a225f9d5da4cfd69d3a
Contents?: true
Size: 1.62 KB
Versions: 4
Compression:
Stored size: 1.62 KB
Contents
require 'capcoauth/rails/routes/mapping' require 'capcoauth/rails/routes/mapper' module Capcoauth module Rails class Routes module Helper def use_capcoauth(options = {}, &block) Capcoauth::Rails::Routes.new(self, &block).generate_routes!(options) end end def self.install! ActionDispatch::Routing::Mapper.send :include, Capcoauth::Rails::Routes::Helper end attr_accessor :routes def initialize(routes, &block) @routes, @block = routes, block end 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 def map_routes(name, method) unless @mapping.skipped?(name) send method, @mapping[name] end end def login_routes(mapping) routes.resource( :login, path: 'login', only: [:show], as: mapping[:as], controller: mapping[:controllers] ) end def logout_routes(mapping) routes.resource( :logout, path: 'logout', only: [:show, :delete], as: mapping[:as], controller: mapping[:controllers] ) end def callback_routes(mapping) routes.resource( :callback, path: 'callback', only: [:show], as: mapping[:as], controller: mapping[:controllers] ) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
capcoauth-0.1.4 | lib/capcoauth/rails/routes.rb |
capcoauth-0.1.3 | lib/capcoauth/rails/routes.rb |
capcoauth-0.1.2 | lib/capcoauth/rails/routes.rb |
capcoauth-0.1.1 | lib/capcoauth/rails/routes.rb |