Methods
Included Modules
Public Instance methods
[ show source ]
# File lib/more/facets/multiton.rb, line 230 def initialized?(*e, &b) multiton_instance.key?(multiton_id(*e, &b)) end
This method is also aliased as
new
[ show source ]
# File lib/more/facets/multiton.rb, line 215 def instance(*e, &b) arg = multiton_id(*e, &b) multiton_instance.fetch(arg) do multiton_mutex[arg].synchronize do multiton_instance.fetch(arg) do val = multiton_instance[arg] = new!(*e, &b) #new(*e, &b) val.instance_variable_set(:@multiton_initializer, e, &b) multiton_mutex.initialized(arg) val end end end end
Alias for instance
Protected Instance methods
[ show source ]
# File lib/more/facets/multiton.rb, line 249 def _load(str) instance(*Marshal.load(str)) end
[ show source ]
# File lib/more/facets/multiton.rb, line 236 def multiton_instance @multiton_instance ||= Hash.new end
[ show source ]
# File lib/more/facets/multiton.rb, line 240 def multiton_mutex @multiton_mutex ||= InstanceMutex.new end
[ show source ]
# File lib/more/facets/multiton.rb, line 244 def reinitialize multiton_instance.clear multiton_mutex.clear end