Module: Fort::Type::Providable

Included in:
Base
Defined in:
lib/fort/type.rb

Constant Summary collapse

ID_GENERATOR =
lambda{
id_number = '0'
lambda{'T' + id_number.next!}}.call

Instance Method Summary collapse

Instance Method Details

#multi_provide(params = {}) ⇒ Object

Parameters:

  • params (Hash<Array>) (defaults to: {})


18
19
20
21
22
23
24
# File 'lib/fort/type.rb', line 18

def multi_provide(params = {})
  @params_default_for_multi_provide ||= {}
  params_for_new = @params_default_for_multi_provide.merge(params)
  product_all(params_for_new.values.map{|val| Array(val)})\
    .map{|values| Hash[params_for_new.keys.zip(values)]}\
    .map{|hash| provide(hash)}
end

#provide(params = {}) ⇒ Object



10
11
12
13
14
15
# File 'lib/fort/type.rb', line 10

def provide(params = {})
  @params_default ||= {}
  @memo ||= {}
  params_for_new = @params_default.merge(params)
  @memo[params_for_new] ||= new(::Fort::Type::Providable::ID_GENERATOR.call, params_for_new)
end