diff options
Diffstat (limited to 'railties/lib/rails/railtie/configuration.rb')
-rw-r--r-- | railties/lib/rails/railtie/configuration.rb | 38 |
1 files changed, 2 insertions, 36 deletions
diff --git a/railties/lib/rails/railtie/configuration.rb b/railties/lib/rails/railtie/configuration.rb index c15cc1a144..eb3b2d8ef4 100644 --- a/railties/lib/rails/railtie/configuration.rb +++ b/railties/lib/rails/railtie/configuration.rb @@ -88,45 +88,11 @@ module Rails def method_missing(name, *args, &blk) if name.to_s =~ /=$/ - key = $`.to_sym - value = args.first - - if value.is_a?(Hash) - @@options[key] = ChainedConfigurationOptions.new value - else - @@options[key] = value - end + @@options[$`.to_sym] = args.first elsif @@options.key?(name) @@options[name] else - @@options[name] = ActiveSupport::OrderedOptions.new - end - end - - class ChainedConfigurationOptions < ActiveSupport::OrderedOptions # :nodoc: - def initialize(value) - value.each_pair { |k, v| set_value k, v } - end - - def method_missing(meth, *args) - if meth =~ /=$/ - key = $`.to_sym - value = args.first - - set_value key, value - else - self.fetch(meth) { super } - end - end - - private - - def set_value(key, value) - if value.is_a?(Hash) - value = self.class.new(value) - end - - self[key] = value + super end end end |