Class: Fitting::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/fitting/response.rb,
lib/fitting/response/fully_validates.rb

Defined Under Namespace

Classes: FullyValidates

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(env_response, tomogram) ⇒ Response

Returns a new instance of Response.



10
11
12
13
14
15
# 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

Instance Attribute Details

#bodyObject (readonly)

Returns the value of attribute body.



8
9
10
# File 'lib/fitting/response.rb', line 8

def body
  @body
end

Instance Method Details

#documented?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/fitting/response.rb', line 29

def documented?
  @schemas && @schemas.present?
end

#expectedObject



53
54
55
56
57
# 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_validatesObject



21
22
23
# File 'lib/fitting/response.rb', line 21

def fully_validates
  @fully_validates ||= Fitting::Response::FullyValidates.craft(@schemas, @body, false)
end

#gotObject



49
50
51
# File 'lib/fitting/response.rb', line 49

def got
  JSON.pretty_generate(MultiJson.load(@body))
end

#ignored?(ignore_list) ⇒ Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/fitting/response.rb', line 63

def ignored?(ignore_list)
  @request.ignored?(ignore_list)
end

#json_schemaObject



59
60
61
# File 'lib/fitting/response.rb', line 59

def json_schema
  @schemas[index.first]
end

#real_request_with_statusObject



45
46
47
# File 'lib/fitting/response.rb', line 45

def real_request_with_status
  "#{@request.real_method_with_path} #{@status}"
end

#routeObject



33
34
35
36
37
# File 'lib/fitting/response.rb', line 33

def route
  index.map do |i|
    "#{@request.route} #{@status} #{i}"
  end
end

#strict_fully_validatesObject



25
26
27
# File 'lib/fitting/response.rb', line 25

def strict_fully_validates
  @strict_fully_validates ||= Fitting::Response::FullyValidates.craft(@schemas, @body, true)
end

#strict_routeObject



39
40
41
42
43
# File 'lib/fitting/response.rb', line 39

def strict_route
  strict_index.map do |i|
    "#{@request.route} #{@status} #{i}"
  end
end

#within_prefix?(prefix) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/fitting/response.rb', line 17

def within_prefix?(prefix)
  @request.within_prefix?(prefix)
end