Skip to content

Instantly share code, notes, and snippets.

@banister
Created November 16, 2011 08:53
Show Gist options
  • Save banister/22e1166ac079816a379e to your computer and use it in GitHub Desktop.
Save banister/22e1166ac079816a379e to your computer and use it in GitHub Desktop.
[4] (pry) main: 0> class A
[4] (pry) main: 0* end
=> nil
[5] (pry) main: 0> singleton_class_of_A = class << A; self; end
=> #<Class:A>
[6] (pry) main: 0> singleton_class_of_singleton_class_of_A = class << singleton_class_of_A; self; end
=> #<Class:#<Class:A>>
[7] (pry) main: 0> class singleton_class_of_singleton_class_of_A
SyntaxError: compile error
(pry):10: class/module name must be CONSTANT
(pry):10: syntax error, unexpected $end
from (pry):10
[8] (pry) main: 0> singleton_class_of_singleton_class_of_A.class_eval do
[8] (pry) main: 0* def baby
[8] (pry) main: 0* puts "baby"
[8] (pry) main: 0* end
[8] (pry) main: 0* end
=> nil
[9] (pry) main: 0> singleton_class_of_singleton_class_of_A.baby
baby
=> nil
[10] (pry) main: 0>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment