Estou farto de reinventar objetos singleton o tempo todo em Ruby;
module MyObject
def self.call
puts "I am a singleton object
end
end
Tudo bem, mas não quero ter que me chamar o tempo todo
e quero poder adicionar private
métodos.
Com um pouco de magia;
def singleton(&block)
mod = Module.new
mod.singleton_class.module_eval(&block)
mod
end
Agora posso definir um objeto singleton com uma intenção clara
MyObject = singleton do
def call
puts "I am a singleton object"
end
end
Depois é só ligar quando eu precisar!
MyObject.()
# I am a singleton object