diff --git a/lib/generators/devise/devise_generator.rb b/lib/generators/devise/devise_generator.rb index 5d80a050..4c2145a7 100644 --- a/lib/generators/devise/devise_generator.rb +++ b/lib/generators/devise/devise_generator.rb @@ -9,9 +9,12 @@ module Devise hook_for :orm + class_option :routes, :desc => "Generate routes", :type => :boolean, :default => true + def add_devise_routes devise_route = "devise_for :#{plural_name}" - devise_route += %Q(, :class_name => "#{class_name}") if class_name.include?("::") + devise_route << %Q(, :class_name => "#{class_name}") if class_name.include?("::") + devise_route << %Q(, :skip => :all) unless options.routes? route devise_route end end diff --git a/test/generators/devise_generator_test.rb b/test/generators/devise_generator_test.rb index 32b3f0f3..292e0ab2 100644 --- a/test/generators/devise_generator_test.rb +++ b/test/generators/devise_generator_test.rb @@ -22,6 +22,12 @@ class DeviseGeneratorTest < Rails::Generators::TestCase assert_file "config/routes.rb", match end + test "route generation with skip routes" do + run_generator %w(monster name:string --skip-routes) + match = /devise_for :monsters, :skip => :all/ + assert_file "config/routes.rb", match + end + def copy_routes routes = File.expand_path("../../rails_app/config/routes.rb", __FILE__) destination = File.join(destination_root, "config")