If you are landing to this page, I assume that you will be knowing the concept of singleton, that is straightforward: only a single instance of a class can exist.
In Ruby, a singleton class is something implicit to every Object. It’s always there, you can make use of it whenever you need.
#singleton_test.rb require 'singleton' class Person include Singleton attr_accessor :name def details puts name end end Person.new
This will give us
test.rb:14:in `<main>': private method `new' called for Person:Class (NoMethodError)
Which makes sense, the whole point of using singleton class is to no longer create an instance of the Person class in an ordinary way.
To access instance of this class, we need to use the instance() method provided by the Singleton module.
You can confirm if using singleton actually gives us one instance of the class
#singleton_test.rb ... person1, person2 = Person.instance, Person.instance puts person1 == person2
which will give you true.
Duplicating the singleton instance and changing name value will end up giving you the latest updated value as below:
#singleton_test.rb ... Person.instance.name = "Ameena" person = Person.instance person.name = "Shad" Person.instance.details
Gives you Shad.
keep Coding !!!