<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -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) &amp;&amp; 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>
      <filename>railties/lib/rails/application.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-require File.expand_path(File.join(File.dirname(__FILE__), '..', 'generators'))
-
 if ARGV.size == 0
   Rails::Generators.help
   exit</diff>
      <filename>railties/lib/rails/commands/destroy.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-require File.expand_path(File.join(File.dirname(__FILE__), '..', 'generators'))
-
 if ARGV.size == 0
   Rails::Generators.help
   exit</diff>
      <filename>railties/lib/rails/commands/generate.rb</filename>
    </modified>
    <modified>
      <diff>@@ -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>
      <filename>railties/lib/rails/configuration.rb</filename>
    </modified>
    <modified>
      <diff>@@ -289,6 +289,7 @@ module Rails
           if args.size == 1
             say args.first.to_s
           else
+            args &lt;&lt; (self.behavior == :invoke ? :green : :red)
             say_status *args
           end
         end</diff>
      <filename>railties/lib/rails/generators/actions.rb</filename>
    </modified>
    <modified>
      <diff>@@ -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) &amp;&amp; args[0].frozen?
+
         super
         assign_names!(self.name)
         parse_attributes! if respond_to?(:attributes)</diff>
      <filename>railties/lib/rails/generators/named_base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,4 @@
 &lt;%= shebang %&gt;
-require File.expand_path('../../config/application',  __FILE__)
+RAILS_GENERATORS = true
+require File.expand_path('../../config/environment',  __FILE__)
 require 'rails/commands/destroy'</diff>
      <filename>railties/lib/rails/generators/rails/app/templates/script/destroy.tt</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,4 @@
 &lt;%= shebang %&gt;
+RAILS_GENERATORS = true
 require File.expand_path('../../config/environment',  __FILE__)
 require 'rails/commands/generate'</diff>
      <filename>railties/lib/rails/generators/rails/app/templates/script/generate.tt</filename>
    </modified>
    <modified>
      <diff>@@ -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 &amp;&amp; !options[:force_plural]
-          say &quot;Plural version of the model detected, using singularized version. Override with --force-plural.&quot;
+          unless ResourceHelpers.skip_warn
+            say &quot;Plural version of the model detected, using singularized version. Override with --force-plural.&quot;
+            ResourceHelpers.skip_warn = true
+          end
+
           name.replace name.singularize
           assign_names!(self.name)
         end</diff>
      <filename>railties/lib/rails/generators/resource_helpers.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require &quot;isolation/abstract_unit&quot;
+RAILS_GENERATORS = true
 
 module ApplicationTests
   class GeneratorsTest &lt; 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 =&gt; { :orm =&gt; :datamapper, :test_framework =&gt; :rspec } }
+        c.generators.helper         = false
+        expected = { :rails =&gt; { :orm =&gt; :datamapper, :test_framework =&gt; :rspec, :helper =&gt; false } }
         assert_equal(expected, c.generators.options)
       end
     end
@@ -93,4 +95,4 @@ module ApplicationTests
       assert Rails::Generators.options.size &gt;= 1
     end
   end
-end
\ No newline at end of file
+end</diff>
      <filename>railties/test/application/generators_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -75,7 +75,7 @@ class ResourceGeneratorTest &lt; GeneratorsTestCase
   end
 
   def test_plural_names_are_singularized
-    content = run_generator [&quot;accounts&quot;]
+    content = run_generator [&quot;accounts&quot;.freeze]
     assert_file &quot;app/models/account.rb&quot;, /class Account &lt; ActiveRecord::Base/
     assert_file &quot;test/unit/account_test.rb&quot;, /class AccountTest/
     assert_match /Plural version of the model detected, using singularized version. Override with --force-plural./, content</diff>
      <filename>railties/test/generators/resource_generator_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>e5211e3bd052ebc24905c65172d449f7b3bcc73f</id>
    </parent>
  </parents>
  <author>
    <name>Jos&#233; Valim</name>
    <email>jose.valim@gmail.com</email>
  </author>
  <url>http://github.com/rails/rails/commit/d627c932bdc5c0e2911e39cfb38952c29dab7afc</url>
  <id>d627c932bdc5c0e2911e39cfb38952c29dab7afc</id>
  <committed-date>2009-11-03T18:22:05-08:00</committed-date>
  <authored-date>2009-11-03T18:14:44-08:00</authored-date>
  <message>Pass config.generators options along when RAILS_GENERATORS is set and show --force-plural message just once.

Signed-off-by: Jeremy Kemper &lt;jeremy@bitsweat.net&gt;</message>
  <tree>16a2a6723f6a365d98c655e2b23574744ab6f7a3</tree>
  <committer>
    <name>Jeremy Kemper</name>
    <email>jeremy@bitsweat.net</email>
  </committer>
</commit>
