diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2014-08-19 19:41:15 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2014-08-19 19:41:15 -0300 |
commit | 43073b393d234acd094ac7c220163f4e419d11f5 (patch) | |
tree | 0d78982dfb1b93f929cc186c951f775a494af621 /railties/lib | |
parent | 867631f9cfa6d639baacc09aac76e68819d5501f (diff) | |
download | rails-43073b393d234acd094ac7c220163f4e419d11f5.tar.gz rails-43073b393d234acd094ac7c220163f4e419d11f5.tar.bz2 rails-43073b393d234acd094ac7c220163f4e419d11f5.zip |
Revert "Improve custom configuration"
This reverts commit de4891344ccc074f6d5693f4fac6ad610584e336.
Conflicts:
railties/lib/rails/railtie/configuration.rb
It added regression. Will be back after the beta
Diffstat (limited to 'railties/lib')
-rw-r--r-- | railties/lib/rails/application/configuration.rb | 14 | ||||
-rw-r--r-- | railties/lib/rails/railtie/configuration.rb | 38 |
2 files changed, 15 insertions, 37 deletions
diff --git a/railties/lib/rails/application/configuration.rb b/railties/lib/rails/application/configuration.rb index 5e8f4de847..782bc4b0f1 100644 --- a/railties/lib/rails/application/configuration.rb +++ b/railties/lib/rails/application/configuration.rb @@ -13,7 +13,7 @@ module Rails :railties_order, :relative_url_root, :secret_key_base, :secret_token, :serve_static_assets, :ssl_options, :static_cache_control, :session_options, :time_zone, :reload_classes_only_on_change, - :beginning_of_week, :filter_redirect + :beginning_of_week, :filter_redirect, :x attr_writer :log_level attr_reader :encoding @@ -48,6 +48,7 @@ module Rails @eager_load = nil @secret_token = nil @secret_key_base = nil + @x = Custom.new @assets = ActiveSupport::OrderedOptions.new @assets.enabled = true @@ -154,6 +155,17 @@ module Rails def annotations SourceAnnotationExtractor::Annotation end + + private + class Custom + def initialize + @configurations = Hash.new + end + + def method_missing(method, *args) + @configurations[method] ||= ActiveSupport::OrderedOptions.new + end + end end end end 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 |