Last active
August 29, 2015 14:12
-
-
Save alex-fedorov/1e1efdb14458bdf2f0ac to your computer and use it in GitHub Desktop.
Very weird singleton example in ruby (with help of eigenclasses)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Short version of previous file (if you don't care about class names) | |
SomeClass = Class.new do | |
class << self | |
class << self | |
def instance; singleton_class end | |
class << self | |
def some_method | |
"here go dragons" | |
end | |
end | |
end | |
end | |
end.singleton_class |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SomeClass = Class.new do | |
class << self | |
class << self | |
def name | |
"Singleton:SomeClass" | |
end | |
def inspect | |
name | |
end | |
def instance | |
singleton_class | |
end | |
class << self | |
def name | |
"Instance:Singleton:SomeClass" | |
end | |
def inspect | |
name | |
end | |
def some_method | |
"here go dragons" | |
end | |
end | |
end | |
end | |
end.singleton_class |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment