Feature #12374
closedSingletonClass
Description
I propose to have a class SingletonClass
, a subclass of the class Class
, to which all singleton classes belong. It should be the owner of all the properties that are specific to singleton classes. Also, the methods defined on Singleton
module should be moved to this class.
Reasons are as follows:
-
I was thinking that the reason #12084 hasn't been seen positively may be because the developers do not want to define a method only on limited instances of a class. If we have
SingletonClass
, the method#instance
proposed in #12084 could be defined as an instance method ofSingletonClass
. -
The way to introduce the singleton pattern using the
Singleton
module (http://ruby-doc.org/stdlib-2.3.0/libdoc/singleton/rdoc/Singleton.html):
class A
include Singleton
# ...
end
is a bit unnatural and verbose. If we have SingletonClass
, then we can define a singleton class more naturally:
A = SingletonClass.new