Permalink
Browse files

Merge pull request #12606 from robin850/apps-with-spaces

Make the application name snake cased when it contains spaces
  • Loading branch information...
2 parents 99044be + 52b2526 commit ebeb87eca8424bad214a50b7fb9b2704f102d34d @senny senny committed Oct 22, 2013
View
@@ -1,3 +1,11 @@
+* Make the application name snake cased when it contains spaces
+
+ The application name is used to fill the `database.yml` and
+ `session_store.rb` files ; previously, if the provided name
+ contained whitespaces, it led to unexpected names in these files.
+
+ *Robin Dupret*
+
* Added `--model-name` option to `ScaffoldControllerGenerator`.
*yalab*
@@ -239,7 +239,7 @@ def file(*args, &block)
end
def app_name
- @app_name ||= (defined_app_const_base? ? defined_app_name : File.basename(destination_root)).tr(".", "_")
+ @app_name ||= (defined_app_const_base? ? defined_app_name : File.basename(destination_root)).tr('\\', '').tr(". ", "_")
end
def defined_app_name
@@ -21,7 +21,7 @@ module Assertions
# end
# end
def assert_file(relative, *contents)
- absolute = File.expand_path(relative, destination_root)
+ absolute = File.expand_path(relative, destination_root).shellescape
assert File.exists?(absolute), "Expected file #{relative.inspect} to exist, but does not"
read = File.read(absolute) if block_given? || !contents.empty?
@@ -367,6 +367,16 @@ def test_pretend_option
assert_no_match(/run bundle install/, output)
end
+ def test_application_name_with_spaces
+ path = File.join(destination_root, "foo bar".shellescape)
+
+ # This also applies to MySQL apps but not with SQLite
+ run_generator [path, "-d", 'postgresql']
+
+ assert_file "foo bar/config/database.yml", /database: foo_bar_development/
+ assert_file "foo bar/config/initializers/session_store.rb", /key: '_foo_bar/
+ end
+
protected
def action(*args, &block)

0 comments on commit ebeb87e

Please sign in to comment.