From 4b173b8ed90cb409c1cdfb922914b41b5e212cb6 Mon Sep 17 00:00:00 2001 From: Lucas Mazza Date: Thu, 19 Jun 2014 18:42:52 -0300 Subject: 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. --- .../lib/rails/generators/rails/controller/controller_generator.rb | 8 ++++++-- railties/test/generators/controller_generator_test.rb | 7 +++++++ 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'railties') 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" -- cgit v1.2.3