if defined? ::BasicObject # A class with no predefined methods that behaves similarly to Builder's # BlankSlate. Used for proxy classes. class BasicObject < ::BasicObject begin undef_method :== undef_method :equal? rescue end # Let ActiveSupport::BasicObject at least raise exceptions. def raise(*args) ::Object.send(:raise, *args) end end else class BasicObject #:nodoc: instance_methods.each do |m| undef_method(m) if m.to_s !~ /(?:^__|^nil\?$|^send$|^object_id$)/ end end end