class Esplanade::Response::Doc

Public Class Methods

new(request, raw) click to toggle source
# File lib/esplanade/response/doc.rb, line 4
def initialize(request, raw)
  @request = request
  @raw = raw
end

Public Instance Methods

json_schemas() click to toggle source
# File lib/esplanade/response/doc.rb, line 18
def json_schemas
  @json_schemas ||= tomogram.map { |action| action['body'] }
end
status() click to toggle source
# File lib/esplanade/response/doc.rb, line 22
def status
  @status ||= tomogram['status']
end
tomogram() click to toggle source
# File lib/esplanade/response/doc.rb, line 9
def tomogram
  @tomogram ||= @request.doc.responses.find_all { |response| response['status'] == @raw.status }
  raise NotDocumented.new(**message) if @tomogram == []

  @tomogram
rescue Esplanade::Request::PrefixNotMatch
  raise PrefixNotMatch.new(**message)
end

Private Instance Methods

message() click to toggle source
# File lib/esplanade/response/doc.rb, line 28
def message
  {
    request: {
      method: @request.raw.method,
      raw_path: @request.raw.raw_path,
      path: @request.raw.path
    },
    status: @raw.status
  }
end