class Dumpling::DependenciesValidator

Public Class Methods

new(service_ids, abstract_service_ids) click to toggle source
# File lib/dumpling/dependencies_validator.rb, line 3
def initialize(service_ids, abstract_service_ids)
  @service_ids = service_ids
  @abstract_service_ids = abstract_service_ids
end

Public Instance Methods

validate(specification) click to toggle source
# File lib/dumpling/dependencies_validator.rb, line 8
def validate(specification)
  missing_services = missing_dependencies(specification).map(&:inspect)
  missing_abstract_services = missing_abstract_dependencies(specification).map do |id|
    "#{id.inspect}(abstract)"
  end
  missing_services.concat(missing_abstract_services)

  unless missing_services.empty?
    raise Errors::Service::MissingDependencies, missing_services.join(', ')
  end
end

Private Instance Methods

missing_abstract_dependencies(specification) click to toggle source
# File lib/dumpling/dependencies_validator.rb, line 27
def missing_abstract_dependencies(specification)
  specification.abstract_services.reject { |id| @abstract_service_ids.include?(id) }
end
missing_dependencies(specification) click to toggle source
# File lib/dumpling/dependencies_validator.rb, line 22
def missing_dependencies(specification)
  dependency_ids = specification.dependencies.keys
  dependency_ids.reject { |id| @service_ids.include?(id) }
end