diff options
Diffstat (limited to 'railties/lib/rails')
-rw-r--r-- | railties/lib/rails/cli.rb | 2 | ||||
-rw-r--r-- | railties/lib/rails/deprecation.rb | 77 |
2 files changed, 26 insertions, 53 deletions
diff --git a/railties/lib/rails/cli.rb b/railties/lib/rails/cli.rb index d49431919d..1260772605 100644 --- a/railties/lib/rails/cli.rb +++ b/railties/lib/rails/cli.rb @@ -1,6 +1,8 @@ require 'rbconfig' require 'rails/script_rails_loader' +# If we are inside a Rails application this method performs an exec and thus +# the rest of this script is not run. Rails::ScriptRailsLoader.exec_script_rails! railties_path = File.expand_path('../../lib', __FILE__) diff --git a/railties/lib/rails/deprecation.rb b/railties/lib/rails/deprecation.rb index 1eb6d804b6..37896e0cae 100644 --- a/railties/lib/rails/deprecation.rb +++ b/railties/lib/rails/deprecation.rb @@ -1,62 +1,33 @@ require "active_support/string_inquirer" -require "active_support/deprecation" +require "active_support/basic_object" -RAILS_ROOT = (Class.new(ActiveSupport::Deprecation::DeprecationProxy) do - cattr_accessor :warned - self.warned = false - - def target - Rails.root - end - - def replace(*args) - warn(caller, :replace, *args) - end - - def warn(callstack, called, args) - unless warned - ActiveSupport::Deprecation.warn("RAILS_ROOT is deprecated! Use Rails.root instead", callstack) - self.warned = true +module Rails + class DeprecatedConstant < ActiveSupport::BasicObject + def self.deprecate(old, new) + constant = self.new(old, new) + eval "::#{old} = constant" end - end -end).new - -RAILS_ENV = (Class.new(ActiveSupport::Deprecation::DeprecationProxy) do - cattr_accessor :warned - self.warned = false - - def target - Rails.env - end - def replace(*args) - warn(caller, :replace, *args) - end - - def warn(callstack, called, args) - unless warned - ActiveSupport::Deprecation.warn("RAILS_ENV is deprecated! Use Rails.env instead", callstack) - self.warned = true + def initialize(old, new) + @old, @new = old, new + @target = ::Kernel.eval "proc { #{@new} }" + @warned = false end - end -end).new - -RAILS_DEFAULT_LOGGER = (Class.new(ActiveSupport::Deprecation::DeprecationProxy) do - cattr_accessor :warned - self.warned = false - def target - Rails.logger - end - - def replace(*args) - warn(caller, :replace, *args) - end + def method_missing(meth, *args, &block) + ::ActiveSupport::Deprecation.warn("#{@old} is deprecated. Please use #{@new}") unless @warned + @warned = true - def warn(callstack, called, args) - unless warned - ActiveSupport::Deprecation.warn("RAILS_DEFAULT_LOGGER is deprecated! Use Rails.logger instead", callstack) - self.warned = true + target = @target.call + if target.respond_to?(meth) + target.send(meth, *args, &block) + else + super + end end end -end).new + + DeprecatedConstant.deprecate("RAILS_ROOT", "::Rails.root.to_s") + DeprecatedConstant.deprecate("RAILS_ENV", "::Rails.env") + DeprecatedConstant.deprecate("RAILS_DEFAULT_LOGGER", "::Rails.logger") +end |