From 04ce9d1e6f3dc794577cb90b675c7513ba126c4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 16 Jan 2010 14:39:05 +0100 Subject: [PATCH] Should accept path prefixes not starting with slash. --- CHANGELOG.rdoc | 3 +++ lib/devise/mapping.rb | 5 ++--- test/rails_app/config/routes.rb | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.rdoc b/CHANGELOG.rdoc index 9f9b9674..44eff421 100644 --- a/CHANGELOG.rdoc +++ b/CHANGELOG.rdoc @@ -6,6 +6,9 @@ * Warden 0.9.0 compatibility * Mongomapper 0.6.10 compatibility +* bug fix + * Accept path prefix not starting with slash + == 0.8.2 * enhancements diff --git a/lib/devise/mapping.rb b/lib/devise/mapping.rb index d1fa14f8..4fccca2e 100644 --- a/lib/devise/mapping.rb +++ b/lib/devise/mapping.rb @@ -61,9 +61,8 @@ module Devise @as = (options.delete(:as) || name).to_sym @klass = (options.delete(:class_name) || name.to_s.classify).to_s @name = (options.delete(:scope) || name.to_s.singularize).to_sym - @path_names = options.delete(:path_names) || {} - @path_prefix = options.delete(:path_prefix).to_s - @path_prefix << "/" unless @path_prefix[-1] == ?/ + @path_names = options.delete(:path_names) || {} + @path_prefix = "/#{options.delete(:path_prefix)}/".squeeze("/") @route_options = options || {} setup_path_names diff --git a/test/rails_app/config/routes.rb b/test/rails_app/config/routes.rb index 5a8b736e..33edd62b 100644 --- a/test/rails_app/config/routes.rb +++ b/test/rails_app/config/routes.rb @@ -1,7 +1,7 @@ ActionController::Routing::Routes.draw do |map| map.devise_for :users map.devise_for :admin, :as => 'admin_area' - map.devise_for :accounts, :scope => 'manager', :path_prefix => '/:locale', + map.devise_for :accounts, :scope => 'manager', :path_prefix => ':locale', :class_name => "User", :requirements => { :extra => 'value' }, :path_names => { :sign_in => 'login', :sign_out => 'logout', :password => 'secret', :confirmation => 'verification', :unlock => 'unblock'