module Cult::SingletonInstances::ClassMethods
Public Instance Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/cult/singleton_instances.rb, line 23 def new(*args) return super unless Cult.singletons? if (result = cache_get(self, *args)) return result end super.tap do |result| cache_put(result, *args) end end
Private Instance Methods
cache_get(cls, *args)
click to toggle source
# File lib/cult/singleton_instances.rb, line 12 def cache_get(cls, *args) singletons[[cls, *args]] end
cache_put(obj, *args)
click to toggle source
# File lib/cult/singleton_instances.rb, line 17 def cache_put(obj, *args) singletons[[obj.class, *args]] = obj end
singletons()
click to toggle source
# File lib/cult/singleton_instances.rb, line 7 def singletons @singletons ||= {} end