class Apia::LookupArgumentSet

Public Class Methods

collate_objects(set) click to toggle source

Finds all objects referenced by this argument set and add them to the provided set.

@param set [Apia::ObjectSet] @return [void]

Calls superclass method Apia::ArgumentSet::collate_objects
# File lib/apia/lookup_argument_set.rb, line 24
def collate_objects(set)
  super

  definition.potential_errors.each do |error|
    set.add_object(error)
  end
end
definition() click to toggle source

Return the definition for this argument set

@return [Apia::Definitions::ArgumentSet]

# File lib/apia/lookup_argument_set.rb, line 15
def definition
  @definition ||= Definitions::LookupArgumentSet.new(Helpers.class_name_to_id(name))
end

Public Instance Methods

environment() click to toggle source
# File lib/apia/lookup_argument_set.rb, line 40
def environment
  @environment ||= LookupEnvironment.new(self)
end
resolve(*args) click to toggle source
# File lib/apia/lookup_argument_set.rb, line 34
def resolve(*args)
  return if self.class.definition.resolver.nil?

  environment.call(@request, *args, &self.class.definition.resolver)
end
validate(argument, index: nil) click to toggle source
# File lib/apia/lookup_argument_set.rb, line 44
def validate(argument, index: nil)
  if @source.empty?
    raise InvalidArgumentError.new(argument, issue: :missing_lookup_value, index: index, path: @path)
  end

  if @source.values.compact.size > 1
    raise InvalidArgumentError.new(argument, issue: :ambiguous_lookup_values, index: index, path: @path)
  end

  true
end