mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Invalid namespace on app generation raises an error
Signed-off-by: José Valim <jose.valim@gmail.com>
This commit is contained in:
@@ -7,6 +7,10 @@ module Rails::Generators
|
||||
# can change in Ruby 1.8.7 when we FileUtils.cd.
|
||||
RAILS_DEV_PATH = File.expand_path("../../../../..", File.dirname(__FILE__))
|
||||
|
||||
RESERVED_NAMES = %w[generate console server dbconsole
|
||||
application destroy benchmarker profiler
|
||||
plugin runner test]
|
||||
|
||||
class AppGenerator < Base
|
||||
DATABASES = %w( mysql oracle postgresql sqlite3 frontbase ibm_db )
|
||||
|
||||
@@ -209,9 +213,10 @@ module Rails::Generators
|
||||
end
|
||||
|
||||
def valid_app_const?
|
||||
case app_const
|
||||
when /^\d/
|
||||
if app_const =~ /^\d/
|
||||
raise Error, "Invalid application name #{app_name}. Please give a name which does not start with numbers."
|
||||
elsif RESERVED_NAMES.include?(app_name)
|
||||
raise Error, "Invalid application name #{app_name}. Please give a name which does not match one of the reserved rails words."
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -50,6 +50,11 @@ class AppGeneratorTest < Rails::Generators::TestCase
|
||||
).each{ |path| assert_file path }
|
||||
end
|
||||
|
||||
def test_name_collision_raises_an_error
|
||||
content = capture(:stderr){ run_generator [File.join(destination_root, "generate")] }
|
||||
assert_equal "Invalid application name generate. Please give a name which does not match one of the reserved rails words.\n", content
|
||||
end
|
||||
|
||||
def test_invalid_database_option_raises_an_error
|
||||
content = capture(:stderr){ run_generator([destination_root, "-d", "unknown"]) }
|
||||
assert_match /Invalid value for \-\-database option/, content
|
||||
|
||||
Reference in New Issue
Block a user