Sha256: 4fd601258bed696bb5e322129d772386bc55c1d044c6ff83153e78285df5a0b1

Contents?: true

Size: 1.98 KB

Versions: 6

Compression:

Stored size: 1.98 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

6 entries across 6 versions & 1 rubygems

Version Path
authpwn_rails-0.13.4 lib/authpwn_rails/routes.rb
authpwn_rails-0.13.3 lib/authpwn_rails/routes.rb
authpwn_rails-0.13.2 lib/authpwn_rails/routes.rb
authpwn_rails-0.13.1 lib/authpwn_rails/routes.rb
authpwn_rails-0.13.0 lib/authpwn_rails/routes.rb
authpwn_rails-0.12.1 lib/authpwn_rails/routes.rb