aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2012-12-15 13:59:17 -0800
committerJeremy Kemper <jeremy@bitsweat.net>2012-12-15 13:59:17 -0800
commit2d6abcce55c9024e2ef8753ab710b8a053e96eec (patch)
tree50734e92e8c2f93d2a2f92eecc5d44467eb9b00e /activesupport
parentd72a07f1d1478db9daed847eadb35bfd840674f6 (diff)
parentbb1d3c1f8eae54abae0f97440d6986e25b528b86 (diff)
downloadrails-2d6abcce55c9024e2ef8753ab710b8a053e96eec.tar.gz
rails-2d6abcce55c9024e2ef8753ab710b8a053e96eec.tar.bz2
rails-2d6abcce55c9024e2ef8753ab710b8a053e96eec.zip
Merge pull request #8518 from rwz/inheritable-basic-object
Properly deprecate AS::BasicObject without breaking subclasses of it
Diffstat (limited to 'activesupport')
-rw-r--r--activesupport/lib/active_support/basic_object.rb9
-rw-r--r--activesupport/test/deprecation/basic_object_test.rb12
2 files changed, 19 insertions, 2 deletions
diff --git a/activesupport/lib/active_support/basic_object.rb b/activesupport/lib/active_support/basic_object.rb
index 242b766b58..d4d06b2aa4 100644
--- a/activesupport/lib/active_support/basic_object.rb
+++ b/activesupport/lib/active_support/basic_object.rb
@@ -1,7 +1,12 @@
require 'active_support/deprecation'
+require 'active_support/proxy_object'
module ActiveSupport
# :nodoc:
- # Deprecated in favor of ActiveSupport::ProxyObject
- BasicObject = Deprecation::DeprecatedConstantProxy.new('ActiveSupport::BasicObject', 'ActiveSupport::ProxyObject')
+ class BasicObject < ProxyObject
+ def self.inherited(*)
+ ::ActiveSupport::Deprecation.warn 'ActiveSupport::BasicObject is deprecated! Use ActiveSupport::ProxyObject instead.'
+ super
+ end
+ end
end
diff --git a/activesupport/test/deprecation/basic_object_test.rb b/activesupport/test/deprecation/basic_object_test.rb
new file mode 100644
index 0000000000..4b5bed9eb1
--- /dev/null
+++ b/activesupport/test/deprecation/basic_object_test.rb
@@ -0,0 +1,12 @@
+require 'abstract_unit'
+require 'active_support/deprecation'
+require 'active_support/basic_object'
+
+
+class BasicObjectTest < ActiveSupport::TestCase
+ test 'BasicObject warns about deprecation when inherited from' do
+ warn = 'ActiveSupport::BasicObject is deprecated! Use ActiveSupport::ProxyObject instead.'
+ ActiveSupport::Deprecation.expects(:warn).with(warn).once
+ Class.new(ActiveSupport::BasicObject)
+ end
+end \ No newline at end of file