class HttpStub::Server::Stub::Match::Rule::JsonSchemaBody

Public Class Methods

new(schema_definition) click to toggle source
# File lib/http_stub/server/stub/match/rule/json_schema_body.rb, line 9
def initialize(schema_definition)
  @schema_definition = schema_definition
end

Public Instance Methods

matches?(request, logger) click to toggle source
# File lib/http_stub/server/stub/match/rule/json_schema_body.rb, line 13
def matches?(request, logger)
  validate_against_schema(request).tap do |errors|
    errors.each { |error| logger.info(error) }
  end.empty?
end
to_s() click to toggle source
# File lib/http_stub/server/stub/match/rule/json_schema_body.rb, line 19
def to_s
  @schema_definition.to_json
end

Private Instance Methods

validate_against_schema(request) click to toggle source
# File lib/http_stub/server/stub/match/rule/json_schema_body.rb, line 25
def validate_against_schema(request)
  JSON::Validator.fully_validate(@schema_definition, request.body, validate_schema: true, json: true)
rescue StandardError => err
  [ err.message ]
end