aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLucas Mazza <lucastmazza@gmail.com>2014-06-19 18:42:52 -0300
committerLucas Mazza <lucastmazza@gmail.com>2014-06-24 14:06:03 -0300
commit4b173b8ed90cb409c1cdfb922914b41b5e212cb6 (patch)
tree3430c6846f93209f75819b6a4576dcf3ab547591
parentef686a60951342a189cc82bfc4823180a6cf3a32 (diff)
downloadrails-4b173b8ed90cb409c1cdfb922914b41b5e212cb6.tar.gz
rails-4b173b8ed90cb409c1cdfb922914b41b5e212cb6.tar.bz2
rails-4b173b8ed90cb409c1cdfb922914b41b5e212cb6.zip
Add a '--skip-routes' flag for the Controller generator.
This way it is possible to skip the addition of the 'get "foo/bar"' routes when generating a controller.
-rw-r--r--railties/lib/rails/generators/rails/controller/controller_generator.rb8
-rw-r--r--railties/test/generators/controller_generator_test.rb7
2 files changed, 13 insertions, 2 deletions
diff --git a/railties/lib/rails/generators/rails/controller/controller_generator.rb b/railties/lib/rails/generators/rails/controller/controller_generator.rb
index 7588a558e7..fbecab1823 100644
--- a/railties/lib/rails/generators/rails/controller/controller_generator.rb
+++ b/railties/lib/rails/generators/rails/controller/controller_generator.rb
@@ -2,6 +2,8 @@ module Rails
module Generators
class ControllerGenerator < NamedBase # :nodoc:
argument :actions, type: :array, default: [], banner: "action action"
+ class_option :skip_routes, type: :boolean, desc: "Dont' add routes to config/routes.rb."
+
check_class_collision suffix: "Controller"
def create_controller_files
@@ -9,8 +11,10 @@ module Rails
end
def add_routes
- actions.reverse.each do |action|
- route generate_routing_code(action)
+ unless options[:skip_routes]
+ actions.reverse.each do |action|
+ route generate_routing_code(action)
+ end
end
end
diff --git a/railties/test/generators/controller_generator_test.rb b/railties/test/generators/controller_generator_test.rb
index 4b2f8539d0..c906d56b8f 100644
--- a/railties/test/generators/controller_generator_test.rb
+++ b/railties/test/generators/controller_generator_test.rb
@@ -70,6 +70,13 @@ class ControllerGeneratorTest < Rails::Generators::TestCase
assert_file "config/routes.rb", /get 'account\/foo'/, /get 'account\/bar'/
end
+ def test_skip_routes
+ run_generator ["account", "foo", "--skip-routes"]
+ assert_file "config/routes.rb" do |routes|
+ assert_no_match /get 'account\/foo'/, routes
+ end
+ end
+
def test_invokes_default_template_engine_even_with_no_action
run_generator ["account"]
assert_file "app/views/account"