Module: Multiton::MetaMethods

Includes:
Inclusive
Defined in:
lib/more/facets/multiton.rb

Instance Method Summary collapse

Instance Method Details

#initialized?(*e, &b) ⇒ Boolean

Returns:

  • (Boolean)


201
202
203
# File 'lib/more/facets/multiton.rb', line 201

def initialized?(*e, &b)
  multiton_instance.key?(multiton_id(*e, &b))
end

#instance(*e, &b) ⇒ Object Also known as: new



186
187
188
189
190
191
192
193
194
195
196
197
198
# File 'lib/more/facets/multiton.rb', line 186

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