class Openapi3Parser::NodeFactory::ObjectFactory::Validator

Attributes

factory[R]
raise_on_invalid[R]
validatable[R]

Public Class Methods

call(*args, **kwargs) click to toggle source
# File lib/openapi3_parser/node_factory/object_factory/validator.rb, line 12
def self.call(*args, **kwargs)
  new(*args, **kwargs).call
end
new(factory, raise_on_invalid: false) click to toggle source
# File lib/openapi3_parser/node_factory/object_factory/validator.rb, line 16
def initialize(factory, raise_on_invalid: false)
  @factory = factory
  @raise_on_invalid = raise_on_invalid
  @validatable = Validation::Validatable.new(factory)
end

Public Instance Methods

call() click to toggle source
# File lib/openapi3_parser/node_factory/object_factory/validator.rb, line 22
def call
  check_required_fields
  check_unexpected_fields
  check_mutually_exclusive_fields
  check_invalid_fields
  check_factory_validations
  validatable.collection
end

Private Instance Methods

check_factory_validations() click to toggle source
# File lib/openapi3_parser/node_factory/object_factory/validator.rb, line 62
def check_factory_validations
  CheckFactoryValidations.call(self)
end
check_invalid_fields() click to toggle source
# File lib/openapi3_parser/node_factory/object_factory/validator.rb, line 58
def check_invalid_fields
  CheckInvalidFields.call(self)
end
check_mutually_exclusive_fields() click to toggle source
# File lib/openapi3_parser/node_factory/object_factory/validator.rb, line 50
def check_mutually_exclusive_fields
  Validators::MutuallyExclusiveFields.call(
    validatable,
    mutually_exclusive_fields: factory.mutually_exclusive_fields,
    raise_on_invalid: raise_on_invalid
  )
end
check_required_fields() click to toggle source
# File lib/openapi3_parser/node_factory/object_factory/validator.rb, line 33
def check_required_fields
  Validators::RequiredFields.call(
    validatable,
    required_fields: factory.required_fields,
    raise_on_invalid: raise_on_invalid
  )
end
check_unexpected_fields() click to toggle source
# File lib/openapi3_parser/node_factory/object_factory/validator.rb, line 41
def check_unexpected_fields
  Validators::UnexpectedFields.call(
    validatable,
    allow_extensions: factory.allowed_extensions?,
    allowed_fields: factory.allowed_fields,
    raise_on_invalid: raise_on_invalid
  )
end