diff --git a/railties/lib/rails/generators/rails/app/app_generator.rb b/railties/lib/rails/generators/rails/app/app_generator.rb index 2f85a0504ebdbab0087ab566057f8feec58c3d17..ba3eb67fe0a5e18b19b8eb7a516d527b53b3d1ed 100644 --- a/railties/lib/rails/generators/rails/app/app_generator.rb +++ b/railties/lib/rails/generators/rails/app/app_generator.rb @@ -194,7 +194,7 @@ def app_name end def app_const_base - @app_const_base ||= app_name.gsub(/\W/, '_').squeeze('_').classify + @app_const_base ||= app_name.gsub(/\W/, '_').squeeze('_').camelize end def app_const diff --git a/railties/test/generators/app_generator_test.rb b/railties/test/generators/app_generator_test.rb index 85081609dec2fe4bcdd79de1288f65f7b78b4c2e..3e3cd90bed87b408411c039db4605f80cbb783dd 100644 --- a/railties/test/generators/app_generator_test.rb +++ b/railties/test/generators/app_generator_test.rb @@ -55,16 +55,21 @@ def test_invalid_database_option_raises_an_error end def test_invalid_application_name_raises_an_error - content = capture(:stderr){ Rails::Generators::AppGenerator.start [File.join(destination_root, "43-things")] } + content = capture(:stderr){ run_generator [File.join(destination_root, "43-things")] } assert_equal "Invalid application name 43-things. Please give a name which does not start with numbers.\n", content end def test_invalid_application_name_is_fixed - silence(:stdout){ Rails::Generators::AppGenerator.start [File.join(destination_root, "things-43")] } + run_generator [File.join(destination_root, "things-43")] assert_file "things-43/config/environment.rb", /Things43::Application\.initialize!/ assert_file "things-43/config/application.rb", /^module Things43$/ end + def test_application_names_are_not_singularized + run_generator [File.join(destination_root, "hats")] + assert_file "hats/config/environment.rb", /Hats::Application\.initialize!/ + end + def test_config_database_is_added_by_default run_generator assert_file "config/database.yml", /sqlite3/