Class: Dry::Effects::Effects::Resolve

Inherits:
Module
  • Object
show all
Defined in:
lib/dry/effects/effects/resolve.rb

Constant Summary collapse

DependencyNameInvalid =
::Class.new(StandardError)
VALID_NAME =
/([a-z_][a-zA-Z_0-9]*)$/
Resolve =
Effect.new(type: :resolve)

Instance Method Summary collapse

Constructor Details

#initialize(*keys, **aliases) ⇒ Resolve

Returns a new instance of Resolve.



13
14
15
16
17
18
19
20
21
22
# File 'lib/dry/effects/effects/resolve.rb', line 13

def initialize(*keys, **aliases)
  super()

  keys_aliased = keys.map { name_for(_1) }.zip(keys)
  module_eval do
    (keys_aliased + aliases.to_a).each do |name, key|
      define_method(name) { |&block| ::Dry::Effects.yield(Resolve.(key), &block) }
    end
  end
end