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