aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2009-07-15 16:53:54 +0200
committerJosé Valim <jose.valim@gmail.com>2009-07-15 16:53:54 +0200
commitbaa4781ac7174e527c2471b4c86ea51c0f65cf6b (patch)
treeac8fac2379845ce30d9e502ff4511be0488a0dd1
parent7022b58842ec3490d85efc5b947d86a0fd72d0cb (diff)
downloadrails-baa4781ac7174e527c2471b4c86ea51c0f65cf6b.tar.gz
rails-baa4781ac7174e527c2471b4c86ea51c0f65cf6b.tar.bz2
rails-baa4781ac7174e527c2471b4c86ea51c0f65cf6b.zip
Allow nil and false to be given as configuration values and avoid creating unecessary hashes.
-rw-r--r--railties/lib/generators.rb10
-rw-r--r--railties/lib/generators/base.rb18
-rw-r--r--railties/lib/rails/configuration.rb2
-rw-r--r--railties/test/initializer_test.rb4
4 files changed, 17 insertions, 17 deletions
diff --git a/railties/lib/generators.rb b/railties/lib/generators.rb
index 6935cb8319..3286e8b2dd 100644
--- a/railties/lib/generators.rb
+++ b/railties/lib/generators.rb
@@ -17,8 +17,7 @@ require 'generators/named_base'
module Rails
module Generators
- DEFAULT_ALIASES = Hash.new{ |h,k| h[k] = {} }
- DEFAULT_ALIASES.merge!(
+ DEFAULT_ALIASES = {
:rails => {
:actions => '-a',
:orm => '-o',
@@ -37,10 +36,9 @@ module Rails
:generator => '-g',
:tasks => '-r'
}
- )
+ }
- DEFAULT_OPTIONS = Hash.new{ |h,k| h[k] = {} }
- DEFAULT_OPTIONS.merge!(
+ DEFAULT_OPTIONS = {
:active_record => {
:migration => true,
:timestamps => true
@@ -74,7 +72,7 @@ module Rails
:generator => false,
:tasks => false
}
- )
+ }
def self.aliases
@@aliases ||= DEFAULT_ALIASES.dup
diff --git a/railties/lib/generators/base.rb b/railties/lib/generators/base.rb
index 1be0dd6ec2..0ef6d061ff 100644
--- a/railties/lib/generators/base.rb
+++ b/railties/lib/generators/base.rb
@@ -210,11 +210,12 @@ module Rails
#
def self.default_value_for_option(option)
options = Rails::Generators.options
+ generator, base = generator_name.to_sym, base_name.to_sym
- if options[generator_name.to_sym].key?(option)
- options[generator_name.to_sym][option]
- elsif options[base_name.to_sym].key?(option)
- options[base_name.to_sym][option]
+ if options[generator] && options[generator].key?(option)
+ options[generator][option]
+ elsif options[base] && options[base].key?(option)
+ options[base][option]
else
options[:rails][option]
end
@@ -225,11 +226,12 @@ module Rails
#
def self.default_aliases_for_option(option)
aliases = Rails::Generators.aliases
+ generator, base = generator_name.to_sym, base_name.to_sym
- if aliases[generator_name.to_sym].key?(option)
- aliases[generator_name.to_sym][option]
- elsif aliases[base_name.to_sym].key?(option)
- aliases[base_name.to_sym][option]
+ if aliases[generator] && aliases[generator].key?(option)
+ aliases[generator][option]
+ elsif aliases[base] && aliases[base].key?(option)
+ aliases[base][option]
else
aliases[:rails][option]
end
diff --git a/railties/lib/rails/configuration.rb b/railties/lib/rails/configuration.rb
index edbec6ad70..4c68ace779 100644
--- a/railties/lib/rails/configuration.rb
+++ b/railties/lib/rails/configuration.rb
@@ -298,7 +298,7 @@ module Rails
def method_missing(method, *args)
sanitized_method = method.to_s.sub(/=$/, '').to_sym
- @options[@namespace][sanitized_method] = args.first if args.first
+ @options[@namespace][sanitized_method] = args.first unless args.empty?
if block_given?
previous_namespace = @namespace
diff --git a/railties/test/initializer_test.rb b/railties/test/initializer_test.rb
index c9362dbe36..96553524da 100644
--- a/railties/test/initializer_test.rb
+++ b/railties/test/initializer_test.rb
@@ -348,7 +348,7 @@ class InitializerGeneratorsTests < Test::Unit::TestCase
expected = {
:rails => { :orm => :datamapper },
:plugin => { :generator => true },
- :datamapper => { :migrations => true }
+ :datamapper => { :migrations => false }
}
assert_equal expected, @configuration.generators.options
assert_equal({ :plugin => { :generator => "-g" } }, @configuration.generators.aliases)
@@ -366,7 +366,7 @@ class InitializerGeneratorsTests < Test::Unit::TestCase
def namespaced_configuration!
@configuration.generators do |g|
g.orm :datamapper do |dm|
- dm.migrations = true
+ dm.migrations = false
end
g.plugin do |p|