class Fitting::Response

Attributes

body[R]

Public Class Methods

new(env_response, tomogram) click to toggle source
# File lib/fitting/response.rb, line 10
def initialize(env_response, tomogram)
  @request = Fitting::Request.new(env_response.request, tomogram)
  @status = env_response.status
  @body = env_response.body
  @schemas = @request.schemas_of_possible_responses(status: @status)
end

Public Instance Methods

documented?() click to toggle source
# File lib/fitting/response.rb, line 29
def documented?
  @schemas && @schemas.present?
end
expected() click to toggle source
# File lib/fitting/response.rb, line 53
def expected
  @expected ||= @schemas.inject([]) do |res, schema|
    res.push(JSON.pretty_generate(schema).to_s)
  end.join("\n\n")
end
fully_validates() click to toggle source
# File lib/fitting/response.rb, line 21
def fully_validates
  @fully_validates ||= Fitting::Response::FullyValidates.craft(@schemas, @body, false)
end
got() click to toggle source
# File lib/fitting/response.rb, line 49
def got
  JSON.pretty_generate(MultiJson.load(@body))
end
ignored?(ignore_list) click to toggle source
# File lib/fitting/response.rb, line 63
def ignored?(ignore_list)
  @request.ignored?(ignore_list)
end
json_schema() click to toggle source
# File lib/fitting/response.rb, line 59
def json_schema
  @schemas[index.first]
end
real_request_with_status() click to toggle source
# File lib/fitting/response.rb, line 45
def real_request_with_status
  "#{@request.real_method_with_path} #{@status}"
end
route() click to toggle source
# File lib/fitting/response.rb, line 33
def route
  index.map do |i|
    "#{@request.route} #{@status} #{i}"
  end
end
strict_fully_validates() click to toggle source
# File lib/fitting/response.rb, line 25
def strict_fully_validates
  @strict_fully_validates ||= Fitting::Response::FullyValidates.craft(@schemas, @body, true)
end
strict_route() click to toggle source
# File lib/fitting/response.rb, line 39
def strict_route
  strict_index.map do |i|
    "#{@request.route} #{@status} #{i}"
  end
end
within_prefix?(prefix) click to toggle source
# File lib/fitting/response.rb, line 17
def within_prefix?(prefix)
  @request.within_prefix?(prefix)
end

Private Instance Methods

index() click to toggle source
# File lib/fitting/response.rb, line 69
def index
  return @index_res if @index_res
  @index_res = []
  @schemas.size.times do |i|
    @index_res.push(i) if fully_validates[i] == []
  end
  @index_res
end
strict_index() click to toggle source
# File lib/fitting/response.rb, line 78
def strict_index
  return @strict_index_res if @strict_index_res
  @strict_index_res = []
  @schemas.size.times do |i|
    @strict_index_res.push(i) if strict_fully_validates[i] == []
  end
  @strict_index_res
end