class Openapi3Parser::NodeFactory::ObjectFactory::Validator::CheckFactoryValidations

Public Class Methods

call(validator) click to toggle source
# File lib/openapi3_parser/node_factory/object_factory/validator.rb, line 135
def self.call(validator)
  new.call(validator)
end

Public Instance Methods

call(validator) click to toggle source
# File lib/openapi3_parser/node_factory/object_factory/validator.rb, line 139
def call(validator)
  run_validations(validator)

  errors = validator.validatable.errors

  return if errors.empty? || !validator.raise_on_invalid

  location_summary = errors.first.context.location_summary
  raise Error::InvalidData,
        "Invalid data for #{location_summary}: "\
        "#{errors.first.message}"
end

Private Instance Methods

run_validations(validator) click to toggle source
# File lib/openapi3_parser/node_factory/object_factory/validator.rb, line 154
def run_validations(validator)
  validator.factory.validations.each do |validation|
    if validation.respond_to?(:call)
      validation.call(validator.validatable)
    elsif validation.is_a?(Symbol)
      validator.factory.send(validation, validator.validatable)
    else
      raise Error::NotCallable, "expected a symbol or a callable"
    end
  end
end