1 module ActiveSupport
2 if defined? ::BasicObject
3 # A class with no predefined methods that behaves similarly to Builder's
4 # BlankSlate. Used for proxy classes.
5 class BasicObject < ::BasicObject
6 undef_method :==
7 undef_method :equal?
8
9 # Let ActiveSupport::BasicObject at least raise exceptions.
10 def raise(*args)
11 ::Object.send(:raise, *args)
12 end
13 end
14 else
15 class BasicObject #:nodoc:
16 instance_methods.each do |m|
17 undef_method(m) if m.to_s !~ /(?:^__|^nil\?$|^send$|^object_id$)/
18 end
19 end
20 end
21 end