class OpenapiValidator::DocumentationValidator

Attributes

api_doc[R]
errors[R]
schemas[R]

Public Class Methods

call(api_doc, additional_schemas: []) click to toggle source

@param [Hash] api_doc parsed openapi documentation @param [Array<String>] additional_schemas paths to custom schemas @return [DocumentationValidator] validation result

# File lib/openapi_validator/documentation_validator.rb, line 12
def self.call(api_doc, additional_schemas: [])
  new(api_doc, additional_schemas: additional_schemas).call
end
new(api_doc, additional_schemas:) click to toggle source

@param [Hash] api_doc parsed openapi documentation @param [Array<String>] additional_schemas paths to custom schemas

# File lib/openapi_validator/documentation_validator.rb, line 46
def initialize(api_doc, additional_schemas:)
  @api_doc = api_doc
  @schemas = additional_schemas.unshift openapi_schema
  @errors = []
end

Public Instance Methods

call() click to toggle source

@return [DocumentationValidator]

# File lib/openapi_validator/documentation_validator.rb, line 17
def call
  validate
end
valid?() click to toggle source

@return [true, false]

# File lib/openapi_validator/documentation_validator.rb, line 22
def valid?
  errors.empty?
end

Private Instance Methods

openapi_schema() click to toggle source

@return [String] path to openapi v3 schema

# File lib/openapi_validator/documentation_validator.rb, line 53
def openapi_schema
  File.expand_path("../../../data/openapi-3.0.json", __FILE__)
end
parsed_schemas() click to toggle source

@return [Array<Hash>] parsed custom schemas

# File lib/openapi_validator/documentation_validator.rb, line 40
def parsed_schemas
  schemas.map { |schema| FileLoader.call(schema) }
end
validate() click to toggle source

@return [DocumentationValidator]

# File lib/openapi_validator/documentation_validator.rb, line 31
def validate
  parsed_schemas.each do |schema|
    errors.concat JsonValidator.fully_validate(schema, api_doc)
  end

  self
end