Sha256: 6e21aba424c1ac243c687ba633bfbdb701c1d8bd8f04a48a39d6305c3f1e03c8

Contents?: true

Size: 1.92 KB

Versions: 11

Compression:

Stored size: 1.92 KB

Contents

require 'action_pack'

# :nodoc: namespace
module Authpwn

# :nodoc: namespace
module Routes

# :nodoc: mixed into ActionPack's route mapper.
module MapperMixin
  # Draws the routes for a session controller.
  #
  # The options hash accepts the following keys.
  #   :controller:: the name of the controller; defaults to "session" for
  #                 SessionController
  #   :paths:: the prefix of the route paths; defaults to the controller name
  #   :method_names:: the root of name used in the path methods; defaults to
  #                   "session", which will generate names like session_path,
  #                   new_session_path, and token_session_path
  def authpwn_session(options = {})
    controller = options[:controller] || 'session'
    paths = options[:paths] || controller
    methods = options[:method_names] || 'session'

    get "/#{paths}/token/:code", controller: controller, action: 'token',
                                 as: :"token_#{methods}"

    get "/#{paths}", controller: controller, action: 'show',
                     as: :"#{methods}"
    get "/#{paths}/new", controller: controller, action: 'new',
                         as: :"new_#{methods}"
    post "/#{paths}", controller: controller, action: 'create'
    delete "/#{paths}", controller: controller, action: 'destroy'

    get "/#{paths}/change_password", controller: controller,
                                    action: 'password_change',
                                    as: "change_password_#{methods}"
    post "/#{paths}/change_password", controller: controller,
                                     action: 'change_password'
    post "/#{paths}/reset_password", controller: controller,
                                     action: 'reset_password',
                                     as: "reset_password_#{methods}"
  end
end

ActionDispatch::Routing::Mapper.send :include, MapperMixin

end  # namespace Authpwn::Routes

end  # namespace Authpwn

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
authpwn_rails-0.16.2 lib/authpwn_rails/routes.rb
authpwn_rails-0.16.1 lib/authpwn_rails/routes.rb
authpwn_rails-0.16.0 lib/authpwn_rails/routes.rb
authpwn_rails-0.15.3 lib/authpwn_rails/routes.rb
authpwn_rails-0.15.2 lib/authpwn_rails/routes.rb
authpwn_rails-0.15.1 lib/authpwn_rails/routes.rb
authpwn_rails-0.15.0 lib/authpwn_rails/routes.rb
authpwn_rails-0.14.3 lib/authpwn_rails/routes.rb
authpwn_rails-0.14.2 lib/authpwn_rails/routes.rb
authpwn_rails-0.14.1 lib/authpwn_rails/routes.rb
authpwn_rails-0.14.0 lib/authpwn_rails/routes.rb