aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2009-11-04 00:14:44 -0200
committerJeremy Kemper <jeremy@bitsweat.net>2009-11-03 18:22:05 -0800
commitd627c932bdc5c0e2911e39cfb38952c29dab7afc (patch)
tree16a2a6723f6a365d98c655e2b23574744ab6f7a3
parente5211e3bd052ebc24905c65172d449f7b3bcc73f (diff)
downloadrails-d627c932bdc5c0e2911e39cfb38952c29dab7afc.tar.gz
rails-d627c932bdc5c0e2911e39cfb38952c29dab7afc.tar.bz2
rails-d627c932bdc5c0e2911e39cfb38952c29dab7afc.zip
Pass config.generators options along when RAILS_GENERATORS is set and show --force-plural message just once.
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
-rw-r--r--railties/lib/rails/application.rb3
-rw-r--r--railties/lib/rails/commands/destroy.rb2
-rwxr-xr-xrailties/lib/rails/commands/generate.rb2
-rw-r--r--railties/lib/rails/configuration.rb14
-rw-r--r--railties/lib/rails/generators/actions.rb1
-rw-r--r--railties/lib/rails/generators/named_base.rb5
-rwxr-xr-xrailties/lib/rails/generators/rails/app/templates/script/destroy.tt3
-rwxr-xr-xrailties/lib/rails/generators/rails/app/templates/script/generate.tt1
-rw-r--r--railties/lib/rails/generators/resource_helpers.rb8
-rw-r--r--railties/test/application/generators_test.rb6
-rw-r--r--railties/test/generators/resource_generator_test.rb2
11 files changed, 31 insertions, 16 deletions
diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb
index af73b08547..ce3ab9147c 100644
--- a/railties/lib/rails/application.rb
+++ b/railties/lib/rails/application.rb
@@ -416,7 +416,8 @@ module Rails
# ===
# TODO: Does this need to be an initializer here?
initializer :initialize_generators do
- if defined?(Rails::Generators)
+ if defined?(RAILS_GENERATORS) && RAILS_GENERATORS
+ require 'rails/generators'
Rails::Generators.no_color! unless config.generators.colorize_logging
Rails::Generators.aliases.deep_merge! config.generators.aliases
Rails::Generators.options.deep_merge! config.generators.options
diff --git a/railties/lib/rails/commands/destroy.rb b/railties/lib/rails/commands/destroy.rb
index 1270fdd033..15ff90f78a 100644
--- a/railties/lib/rails/commands/destroy.rb
+++ b/railties/lib/rails/commands/destroy.rb
@@ -1,5 +1,3 @@
-require File.expand_path(File.join(File.dirname(__FILE__), '..', 'generators'))
-
if ARGV.size == 0
Rails::Generators.help
exit
diff --git a/railties/lib/rails/commands/generate.rb b/railties/lib/rails/commands/generate.rb
index d91dcf9788..82a658e2ed 100755
--- a/railties/lib/rails/commands/generate.rb
+++ b/railties/lib/rails/commands/generate.rb
@@ -1,5 +1,3 @@
-require File.expand_path(File.join(File.dirname(__FILE__), '..', 'generators'))
-
if ARGV.size == 0
Rails::Generators.help
exit
diff --git a/railties/lib/rails/configuration.rb b/railties/lib/rails/configuration.rb
index 0a545f23de..2b847ba711 100644
--- a/railties/lib/rails/configuration.rb
+++ b/railties/lib/rails/configuration.rb
@@ -278,12 +278,16 @@ module Rails
end
def method_missing(method, *args)
- method = method.to_s.sub(/=$/, '').to_sym
- namespace = args.first.is_a?(Symbol) ? args.shift : nil
- configuration = args.first.is_a?(Hash) ? args.shift : nil
+ method = method.to_s.sub(/=$/, '').to_sym
- @options[:rails][method] = namespace if namespace
- namespace ||= method
+ if method == :rails
+ namespace, configuration = :rails, args.shift
+ elsif args.first.is_a?(Hash)
+ namespace, configuration = method, args.shift
+ else
+ namespace, configuration = args.shift, args.shift
+ @options[:rails][method] = namespace
+ end
if configuration
aliases = configuration.delete(:aliases)
diff --git a/railties/lib/rails/generators/actions.rb b/railties/lib/rails/generators/actions.rb
index c601c6fb39..8677bf283b 100644
--- a/railties/lib/rails/generators/actions.rb
+++ b/railties/lib/rails/generators/actions.rb
@@ -289,6 +289,7 @@ module Rails
if args.size == 1
say args.first.to_s
else
+ args << (self.behavior == :invoke ? :green : :red)
say_status *args
end
end
diff --git a/railties/lib/rails/generators/named_base.rb b/railties/lib/rails/generators/named_base.rb
index 0e5976f915..1d4f52286e 100644
--- a/railties/lib/rails/generators/named_base.rb
+++ b/railties/lib/rails/generators/named_base.rb
@@ -11,7 +11,10 @@ module Rails
alias :file_name :singular_name
- def initialize(*args) #:nodoc:
+ def initialize(args, *options) #:nodoc:
+ # Unfreeze name in case it's given as a frozen string
+ args[0] = args[0].dup if args[0].is_a?(String) && args[0].frozen?
+
super
assign_names!(self.name)
parse_attributes! if respond_to?(:attributes)
diff --git a/railties/lib/rails/generators/rails/app/templates/script/destroy.tt b/railties/lib/rails/generators/rails/app/templates/script/destroy.tt
index c97090cdee..62a856d338 100755
--- a/railties/lib/rails/generators/rails/app/templates/script/destroy.tt
+++ b/railties/lib/rails/generators/rails/app/templates/script/destroy.tt
@@ -1,3 +1,4 @@
<%= shebang %>
-require File.expand_path('../../config/application', __FILE__)
+RAILS_GENERATORS = true
+require File.expand_path('../../config/environment', __FILE__)
require 'rails/commands/destroy'
diff --git a/railties/lib/rails/generators/rails/app/templates/script/generate.tt b/railties/lib/rails/generators/rails/app/templates/script/generate.tt
index 26f029c6a6..a005e77104 100755
--- a/railties/lib/rails/generators/rails/app/templates/script/generate.tt
+++ b/railties/lib/rails/generators/rails/app/templates/script/generate.tt
@@ -1,3 +1,4 @@
<%= shebang %>
+RAILS_GENERATORS = true
require File.expand_path('../../config/environment', __FILE__)
require 'rails/commands/generate'
diff --git a/railties/lib/rails/generators/resource_helpers.rb b/railties/lib/rails/generators/resource_helpers.rb
index 0385581083..99954e2292 100644
--- a/railties/lib/rails/generators/resource_helpers.rb
+++ b/railties/lib/rails/generators/resource_helpers.rb
@@ -6,6 +6,8 @@ module Rails
# ActiveModel.
#
module ResourceHelpers
+ mattr_accessor :skip_warn
+
def self.included(base) #:nodoc:
base.send :attr_reader, :controller_name, :controller_class_name, :controller_file_name,
:controller_class_path, :controller_file_path
@@ -19,7 +21,11 @@ module Rails
super
if name == name.pluralize && !options[:force_plural]
- say "Plural version of the model detected, using singularized version. Override with --force-plural."
+ unless ResourceHelpers.skip_warn
+ say "Plural version of the model detected, using singularized version. Override with --force-plural."
+ ResourceHelpers.skip_warn = true
+ end
+
name.replace name.singularize
assign_names!(self.name)
end
diff --git a/railties/test/application/generators_test.rb b/railties/test/application/generators_test.rb
index 445a867c85..bfbf1ffd16 100644
--- a/railties/test/application/generators_test.rb
+++ b/railties/test/application/generators_test.rb
@@ -1,4 +1,5 @@
require "isolation/abstract_unit"
+RAILS_GENERATORS = true
module ApplicationTests
class GeneratorsTest < Test::Unit::TestCase
@@ -23,7 +24,8 @@ module ApplicationTests
Rails::Initializer.run do |c|
c.generators.orm = :datamapper
c.generators.test_framework = :rspec
- expected = { :rails => { :orm => :datamapper, :test_framework => :rspec } }
+ c.generators.helper = false
+ expected = { :rails => { :orm => :datamapper, :test_framework => :rspec, :helper => false } }
assert_equal(expected, c.generators.options)
end
end
@@ -93,4 +95,4 @@ module ApplicationTests
assert Rails::Generators.options.size >= 1
end
end
-end \ No newline at end of file
+end
diff --git a/railties/test/generators/resource_generator_test.rb b/railties/test/generators/resource_generator_test.rb
index dcae81c204..886af01b22 100644
--- a/railties/test/generators/resource_generator_test.rb
+++ b/railties/test/generators/resource_generator_test.rb
@@ -75,7 +75,7 @@ class ResourceGeneratorTest < GeneratorsTestCase
end
def test_plural_names_are_singularized
- content = run_generator ["accounts"]
+ content = run_generator ["accounts".freeze]
assert_file "app/models/account.rb", /class Account < ActiveRecord::Base/
assert_file "test/unit/account_test.rb", /class AccountTest/
assert_match /Plural version of the model detected, using singularized version. Override with --force-plural./, content