aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib/rails')
-rw-r--r--railties/lib/rails/cli.rb2
-rw-r--r--railties/lib/rails/deprecation.rb77
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