aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorPiotr Sarnacki <drogus@gmail.com>2010-12-10 14:42:10 +0100
committerVijay Dev <vijaydev.cse@gmail.com>2010-12-16 01:49:28 +0530
commite6928e8c35bfc22425916f334e9482f955bc8907 (patch)
tree8e2b6d98cad03e3f0141f3975c88c5bd0e6cfa8a /railties
parent692b621d2a134ac784719abcb4fd24f1710cd786 (diff)
downloadrails-e6928e8c35bfc22425916f334e9482f955bc8907.tar.gz
rails-e6928e8c35bfc22425916f334e9482f955bc8907.tar.bz2
rails-e6928e8c35bfc22425916f334e9482f955bc8907.zip
Allow to generate namespaced generators [#6140 state:resolved]
Signed-off-by: José Valim <jose.valim@gmail.com>
Diffstat (limited to 'railties')
-rw-r--r--railties/lib/rails/generators/rails/generator/generator_generator.rb4
-rw-r--r--railties/test/generators/generator_generator_test.rb39
2 files changed, 41 insertions, 2 deletions
diff --git a/railties/lib/rails/generators/rails/generator/generator_generator.rb b/railties/lib/rails/generators/rails/generator/generator_generator.rb
index 5b5d1884bc..3e0a442bda 100644
--- a/railties/lib/rails/generators/rails/generator/generator_generator.rb
+++ b/railties/lib/rails/generators/rails/generator/generator_generator.rb
@@ -14,9 +14,9 @@ module Rails
def generator_dir
if options[:namespace]
- File.join("lib", "generators", file_name)
+ File.join("lib", "generators", regular_class_path, file_name)
else
- File.join("lib", "generators")
+ File.join("lib", "generators", regular_class_path)
end
end
diff --git a/railties/test/generators/generator_generator_test.rb b/railties/test/generators/generator_generator_test.rb
index 26f975a191..f4c975fc18 100644
--- a/railties/test/generators/generator_generator_test.rb
+++ b/railties/test/generators/generator_generator_test.rb
@@ -17,4 +17,43 @@ class GeneratorGeneratorTest < Rails::Generators::TestCase
assert_file "lib/generators/awesome/awesome_generator.rb",
/class AwesomeGenerator < Rails::Generators::NamedBase/
end
+
+ def test_namespaced_generator_skeleton
+ run_generator ["rails/awesome"]
+
+ %w(
+ lib/generators/rails/awesome
+ lib/generators/rails/awesome/USAGE
+ lib/generators/rails/awesome/templates
+ ).each{ |path| assert_file path }
+
+ assert_file "lib/generators/rails/awesome/awesome_generator.rb",
+ /class Rails::AwesomeGenerator < Rails::Generators::NamedBase/
+ end
+
+ def test_generator_skeleton_is_created_without_file_name_namespace
+ run_generator ["awesome", "--namespace", "false"]
+
+ %w(
+ lib/generators/
+ lib/generators/USAGE
+ lib/generators/templates
+ ).each{ |path| assert_file path }
+
+ assert_file "lib/generators/awesome_generator.rb",
+ /class AwesomeGenerator < Rails::Generators::NamedBase/
+ end
+
+ def test_namespaced_generator_skeleton_without_file_name_namespace
+ run_generator ["rails/awesome", "--namespace", "false"]
+
+ %w(
+ lib/generators/rails
+ lib/generators/rails/USAGE
+ lib/generators/rails/templates
+ ).each{ |path| assert_file path }
+
+ assert_file "lib/generators/rails/awesome_generator.rb",
+ /class Rails::AwesomeGenerator < Rails::Generators::NamedBase/
+ end
end