aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/railtie.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activesupport/lib/active_support/railtie.rb')
-rw-r--r--activesupport/lib/active_support/railtie.rb102
1 files changed, 31 insertions, 71 deletions
diff --git a/activesupport/lib/active_support/railtie.rb b/activesupport/lib/active_support/railtie.rb
index 59f9ab18b1..c2deba3b1b 100644
--- a/activesupport/lib/active_support/railtie.rb
+++ b/activesupport/lib/active_support/railtie.rb
@@ -1,5 +1,6 @@
require "active_support"
require "rails"
+require "active_support/i18n_railtie"
module ActiveSupport
class Railtie < Rails::Railtie
@@ -11,6 +12,36 @@ module ActiveSupport
require 'active_support/whiny_nil' if app.config.whiny_nils
end
+ initializer "active_support.deprecation_behavior" do |app|
+ if deprecation = app.config.active_support.deprecation
+ ActiveSupport::Deprecation.behavior = deprecation
+ else
+ defaults = {"development" => :log,
+ "production" => :notify,
+ "test" => :stderr}
+
+ env = Rails.env
+
+ if defaults.key?(env)
+ msg = "You did not specify how you would like Rails to report " \
+ "deprecation notices for your #{env} environment, please " \
+ "set config.active_support.deprecation to :#{defaults[env]} " \
+ "at config/environments/#{env}.rb"
+
+ warn msg
+ ActiveSupport::Deprecation.behavior = defaults[env]
+ else
+ msg = "You did not specify how you would like Rails to report " \
+ "deprecation notices for your #{env} environment, please " \
+ "set config.active_support.deprecation to :log, :notify or " \
+ ":stderr at config/environments/#{env}.rb"
+
+ warn msg
+ ActiveSupport::Deprecation.behavior = :stderr
+ end
+ end
+ end
+
# Sets the default value for Time.zone
# If assigned value cannot be matched to a TimeZone, an exception will be raised.
initializer "active_support.initialize_time_zone" do |app|
@@ -27,74 +58,3 @@ module ActiveSupport
end
end
end
-
-module I18n
- class Railtie < Rails::Railtie
- config.i18n = ActiveSupport::OrderedOptions.new
- config.i18n.railties_load_path = []
- config.i18n.load_path = []
- config.i18n.fallbacks = ActiveSupport::OrderedOptions.new
-
- initializer "i18n.initialize" do
- ActiveSupport.on_load(:i18n) do
- I18n.reload!
-
- ActionDispatch::Callbacks.to_prepare do
- I18n.reload!
- end
- end
- end
-
- # Set the i18n configuration from config.i18n but special-case for
- # the load_path which should be appended to what's already set instead of overwritten.
- config.after_initialize do |app|
- fallbacks = app.config.i18n.delete(:fallbacks)
-
- app.config.i18n.each do |setting, value|
- case setting
- when :railties_load_path
- app.config.i18n.load_path.unshift(*value)
- when :load_path
- I18n.load_path += value
- else
- I18n.send("#{setting}=", value)
- end
- end
-
- init_fallbacks(fallbacks) if fallbacks && validate_fallbacks(fallbacks)
- I18n.reload!
- end
-
- class << self
- protected
-
- def init_fallbacks(fallbacks)
- include_fallbacks_module
- args = case fallbacks
- when ActiveSupport::OrderedOptions
- [*(fallbacks[:defaults] || []) << fallbacks[:map]].compact
- when Hash, Array
- Array.wrap(fallbacks)
- else # TrueClass
- []
- end
- I18n.fallbacks = I18n::Locale::Fallbacks.new(*args)
- end
-
- def include_fallbacks_module
- I18n.backend.class.send(:include, I18n::Backend::Fallbacks)
- end
-
- def validate_fallbacks(fallbacks)
- case fallbacks
- when ActiveSupport::OrderedOptions
- !fallbacks.empty?
- when TrueClass, Array, Hash
- true
- else
- raise "Unexpected fallback type #{fallbacks.inspect}"
- end
- end
- end
- end
-end \ No newline at end of file