class Dry::AutoInject::DependencyMap
Public Class Methods
new(*dependencies)
click to toggle source
# File lib/dry/auto_inject/dependency_map.rb, line 11 def initialize(*dependencies) @map = {} dependencies = dependencies.dup aliases = dependencies.last.is_a?(Hash) ? dependencies.pop : {} dependencies.each do |identifier| name = name_for(identifier) add_dependency(name, identifier) end aliases.each do |name, identifier| add_dependency(name, identifier) end end
Public Instance Methods
inspect()
click to toggle source
# File lib/dry/auto_inject/dependency_map.rb, line 27 def inspect @map.inspect end
names()
click to toggle source
# File lib/dry/auto_inject/dependency_map.rb, line 31 def names @names ||= @map.keys end
to_h()
click to toggle source
# File lib/dry/auto_inject/dependency_map.rb, line 35 def to_h @map.dup end
Also aliased as: to_hash
Private Instance Methods
add_dependency(name, identifier)
click to toggle source
# File lib/dry/auto_inject/dependency_map.rb, line 49 def add_dependency(name, identifier) name = name.to_sym raise DuplicateDependencyError, "name +#{name}+ is already used" if @map.key?(name) @map[name] = identifier end
name_for(identifier)
click to toggle source
# File lib/dry/auto_inject/dependency_map.rb, line 42 def name_for(identifier) matched = VALID_NAME.match(identifier.to_s) raise DependencyNameInvalid, "name +#{identifier}+ is not a valid Ruby identifier" unless matched matched[0] end