From 918f7038b3d4d4180a4d1056bb4b7b3f3b85508f Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Sun, 7 Oct 2012 11:50:50 +0200 Subject: explains why these requires are in an unusual place --- activesupport/lib/active_support/deprecation.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/activesupport/lib/active_support/deprecation.rb b/activesupport/lib/active_support/deprecation.rb index b732c17e0f..6c15fffc0f 100644 --- a/activesupport/lib/active_support/deprecation.rb +++ b/activesupport/lib/active_support/deprecation.rb @@ -4,6 +4,14 @@ module ActiveSupport # \Deprecation specifies the API used by Rails to deprecate methods, instance # variables, objects and constants. class Deprecation + # active_support.rb sets an autoload for ActiveSupport::Deprecation. + # + # If these requires were at the top of the file the constant would not be + # defined by the time their files were loaded. Since some of them reopen + # ActiveSupport::Deprecation its autoload would be triggered, resulting in + # a circular require warning for active_support/deprecation.rb. + # + # So, we define the constant first, and load dependencies later. require 'active_support/deprecation/instance_delegator' require 'active_support/deprecation/behaviors' require 'active_support/deprecation/reporting' -- cgit v1.2.3