Project

General

Profile

Feature #12374

SingletonClass

Added by sawa (Tsuyoshi Sawada) about 4 years ago. Updated almost 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:75477]

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:

  1. 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 of SingletonClass.

  2. 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

Also available in: Atom PDF