Skip to content

Instantly share code, notes, and snippets.

@duairc
Created September 17, 2009 10:58
Show Gist options
  • Save duairc/188449 to your computer and use it in GitHub Desktop.
Save duairc/188449 to your computer and use it in GitHub Desktop.
shane@awub:~$ irb
irb(main):001:0> class A
irb(main):002:1> def self.foo
irb(main):003:2> 'foo'
irb(main):004:2> end
irb(main):005:1> end
=> nil
irb(main):006:0> class B < A
irb(main):007:1> end
=> nil
irb(main):008:0> class << A
irb(main):009:1> instance_method(:foo)
irb(main):010:1> end
=> #<UnboundMethod: #<Class:A>#foo>
irb(main):011:0> _.bind(B)
TypeError: singleton method called for a different object
from (irb):11:in `bind'
from (irb):11
from /usr/bin/irb1.9:12:in `<main>'
irb(main):012:0> klass = class << A; self; end
=> #<Class:A>
irb(main):013:0> klass === B
=> true
irb(main):014:0> B.kind_of? klass
=> true
irb(main):015:0> klass = class << B; self; end
=> #<Class:B>
irb(main):016:0> klass.superclass
=> #<Class:A>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment