class Dry::Effects::Effects::Resolve
Constants
- DependencyNameInvalid
- Resolve
- VALID_NAME
Public Class Methods
new(*keys, **aliases)
click to toggle source
Calls superclass method
# File lib/dry/effects/effects/resolve.rb, line 18 def initialize(*keys, **aliases) super() keys_aliased = keys.map { |k| name_for(k) }.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
Private Instance Methods
name_for(identifier)
click to toggle source
similar approach in dry-auto_inject github.com/dry-rb/dry-auto_inject/blob/master/lib/dry/auto_inject/dependency_map.rb#L42
# File lib/dry/effects/effects/resolve.rb, line 32 def name_for(identifier) matched = VALID_NAME.match(identifier.to_s) unless matched raise DependencyNameInvalid, "name +#{identifier}+ is not a valid Ruby identifier" end matched[0] end