aboutsummaryrefslogblamecommitdiffstats
path: root/activesupport/lib/active_support/basic_object.rb
blob: 3b5277c205518875476c7e2158e7e1e6ff963e24 (plain) (tree)
1
2
3
4
5
6
7
                    
                           

                                                                            


                                     




                                                                 

       




                                                                         
     
   
module ActiveSupport
  if defined? ::BasicObject
    # A class with no predefined methods that behaves similarly to Builder's
    # BlankSlate. Used for proxy classes.
    class BasicObject < ::BasicObject
      undef_method :==
      undef_method :equal?

      # 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
end