aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/proxy_object.rb
diff options
context:
space:
mode:
authorFrancesco Rodriguez <lrodriguezsanc@gmail.com>2012-12-07 14:13:56 -0500
committerFrancesco Rodriguez <lrodriguezsanc@gmail.com>2012-12-07 14:13:56 -0500
commit6ee03a40bbb95c68d7517098b1e215f08ad82fb5 (patch)
tree93aa00f23c48b948bbc7d2604cc8339452bced57 /activesupport/lib/active_support/proxy_object.rb
parent7b50dc5316f1db83b2d138a12bb0b0ab5ea90a33 (diff)
downloadrails-6ee03a40bbb95c68d7517098b1e215f08ad82fb5.tar.gz
rails-6ee03a40bbb95c68d7517098b1e215f08ad82fb5.tar.bz2
rails-6ee03a40bbb95c68d7517098b1e215f08ad82fb5.zip
Rename ActiveSupport::BasicObject to ActiveSupport::ProxyObject
AS::BasicObject is used for proxy classes. Let's give it a less concerning name. Also, it avoids the confusion with Ruby's Basic Object.
Diffstat (limited to 'activesupport/lib/active_support/proxy_object.rb')
-rw-r--r--activesupport/lib/active_support/proxy_object.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/activesupport/lib/active_support/proxy_object.rb b/activesupport/lib/active_support/proxy_object.rb
new file mode 100644
index 0000000000..a2bdf1d790
--- /dev/null
+++ b/activesupport/lib/active_support/proxy_object.rb
@@ -0,0 +1,13 @@
+module ActiveSupport
+ # A class with no predefined methods that behaves similarly to Builder's
+ # BlankSlate. Used for proxy classes.
+ class ProxyObject < ::BasicObject
+ undef_method :==
+ undef_method :equal?
+
+ # Let ActiveSupport::BasicObject at least raise exceptions.
+ def raise(*args)
+ ::Object.send(:raise, *args)
+ end
+ end
+end