Sha256: 8367dbdc8f983f97243bfff18902a0faa897293677738d9672081754abc489a4
Contents?: true
Size: 1.25 KB
Versions: 1
Compression:
Stored size: 1.25 KB
Contents
module Fitting class Response attr_accessor :status, :body, :schemas class Unsuitable < RuntimeError; end class NotDocumented < RuntimeError; end def initialize(env_response, expect_request) @status = env_response.status @body = env_response.body @schemas = expect_request.find_responses(status: @status).map{|response|response['body']} if expect_request @fully_validates = set_fully_validate if @schemas raise Response::NotDocumented unless (@schemas && @schemas.first) || Fitting.configuration.skip_not_documented self end def valid! raise Unsuitable unless @valid end def set_fully_validate @valid = false fully_validates = [] @schemas.map do |old_schema| fully_validate = JSON::Validator.fully_validate(old_schema, @body) fully_validates.push(fully_validate) @valid = true if fully_validate == [] end fully_validates end def validate? @schemas && @schemas.first && Fitting.configuration.validation_response end def to_hash { 'status' => @status, 'body' => @body, 'schemas' => @schemas, 'fully_validates' => @fully_validates, 'valid' => @valid } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fitting-0.4.2 | lib/fitting/response.rb |