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