Skip to content

Instantly share code, notes, and snippets.

@plexus
Created October 29, 2014 16:13
Show Gist options
  • Save plexus/fbc7e16cd3765834441b to your computer and use it in GitHub Desktop.
Save plexus/fbc7e16cd3765834441b to your computer and use it in GitHub Desktop.
class Module
def ===(object)
object.kind_of?(self)
end
end
class Foo < BasicObject
def x
3
end
end
Foo.new.instance_eval do
Kernel.puts x
end
# On MRI:
#
# 3
#
# On Rubinius:
#
# An exception occurred running /home/arne/projects/ruby-tmp/00205.rb:
#
# Unable to send 'kind_of?' on instance of BasicObject (NoMethodError)
#
# Backtrace:
#
# BasicObject(Foo)#kind_of? (method_missing) at kernel/common/basic_object.rb:3
# Module#=== at /home/arne/projects/ruby-tmp/00205.rb:3
# BasicObject(Foo)#instance_eval at kernel/common/eval.rb:24
# Object#__script__ at /home/arne/projects/ruby-tmp/00205.rb:13
# Rubinius::CodeLoader#load_script at kernel/delta/code_loader.rb:66
# Rubinius::CodeLoader.load_script at kernel/delta/code_loader.rb:152
# Rubinius::Loader#script at kernel/loader.rb:649
# Rubinius::Loader#main at kernel/loader.rb:825
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment