Sha256: fafbd4a4562a8ba53745f6ccf6f877f8c5e5c8f7d690bbcc72a4e01125d36bc1
Contents?: true
Size: 1.46 KB
Versions: 11
Compression:
Stored size: 1.46 KB
Contents
module VCR if defined?(::BasicObject) BasicObject = ::BasicObject else # taken directly from backports: # https://github.com/marcandre/backports/blob/v1.18.2/lib/backports/basic_object.rb class BasicObject KEEP = [:instance_eval, :instance_exec, :__send__, "instance_eval", "instance_exec", "__send__"] # undefine almost all instance methods begin old_verbose, $VERBOSE = $VERBOSE, nil # silence the warning for undefining __id__ (instance_methods - KEEP).each do |method| undef_method method end ensure $VERBOSE = old_verbose end class << self def === (cmp) true end # Let's try to keep things clean, in case methods have been added to Object # either directly or through an included module. # We'll do this whenever a class is derived from BasicObject # Ideally, we'd do this by trapping Object.method_added # and M.method_added for any module M included in Object or a submodule # Seems really though to get right, but pull requests welcome ;-) def inherited(sub) BasicObject.class_eval do (instance_methods - KEEP).each do |method| if Object.method_defined?(method) && instance_method(method).owner == Object.instance_method(method).owner undef_method method end end end end end end end end
Version data entries
11 entries across 11 versions & 1 rubygems