class Deptree::Registry

Public Class Methods

new() click to toggle source
# File lib/deptree/registry.rb, line 4
def initialize
  @dependencies = {}
end

Public Instance Methods

add(name, dependency) click to toggle source
# File lib/deptree/registry.rb, line 8
def add(name, dependency)
  fail DuplicateDependencyError.new(name) if include?(name)
  @dependencies.store(normalize(name), dependency)
end
find(name) click to toggle source
# File lib/deptree/registry.rb, line 13
def find(name)
  @dependencies.fetch(normalize(name))
end
include?(name) click to toggle source
# File lib/deptree/registry.rb, line 25
def include?(name)
  @dependencies.has_key?(name)
end
select(*names) click to toggle source
# File lib/deptree/registry.rb, line 17
def select(*names)
  if names.empty?
    @dependencies.values
  else
    names.map { |name| find(name) }
  end
end

Private Instance Methods

normalize(name) click to toggle source
# File lib/deptree/registry.rb, line 31
def normalize(name)
  name.to_s
end