Class: HTTPSpec::Clients::RaddocsProxy::Example

Inherits:
Object
  • Object
show all
Defined in:
lib/http_spec/clients/raddocs_proxy.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resource_name, description, requests = []) ⇒ Example

Returns a new instance of Example.



95
96
97
98
99
# File 'lib/http_spec/clients/raddocs_proxy.rb', line 95

def initialize(resource_name, description, requests = [])
  @resource_name = resource_name
  @description = description
  @requests = requests
end

Instance Attribute Details

#descriptionObject (readonly)

Returns the value of attribute description.



92
93
94
# File 'lib/http_spec/clients/raddocs_proxy.rb', line 92

def description
  @description
end

#explanationObject

Returns the value of attribute explanation.



93
94
95
# File 'lib/http_spec/clients/raddocs_proxy.rb', line 93

def explanation
  @explanation
end

#parametersObject

Returns the value of attribute parameters.



93
94
95
# File 'lib/http_spec/clients/raddocs_proxy.rb', line 93

def parameters
  @parameters
end

#requestsObject (readonly)

Returns the value of attribute requests.



92
93
94
# File 'lib/http_spec/clients/raddocs_proxy.rb', line 92

def requests
  @requests
end

#resource_nameObject (readonly)

Returns the value of attribute resource_name.



92
93
94
# File 'lib/http_spec/clients/raddocs_proxy.rb', line 92

def resource_name
  @resource_name
end

Class Method Details

.load(io, serializer = JSON) ⇒ Object



101
102
103
104
105
106
107
108
109
110
# File 'lib/http_spec/clients/raddocs_proxy.rb', line 101

def self.load(io, serializer = JSON)
  content = serializer.load(io)
  resource_name = content.fetch("resource")
  description = content.fetch("description")
  requests = content.fetch("requests")
  new(resource_name, description, requests).tap do |example|
    example.explanation = content["explanation"]
    example.parameters = content["parameters"]
  end
end

Instance Method Details

#add_request(request, response) ⇒ Object



123
124
125
126
127
128
129
130
131
132
133
# File 'lib/http_spec/clients/raddocs_proxy.rb', line 123

def add_request(request, response)
  requests.push(
    "request_headers" => request.headers || {},
    "request_method" => request.method.upcase,
    "request_path" => request.path,
    "request_body" => request.body,
    "response_status" => response.status,
    "response_headers" => response.headers,
    "response_body" => response.body
  )
end

#dump(io, serializer = JSON) ⇒ Object



112
113
114
115
116
117
118
119
120
121
# File 'lib/http_spec/clients/raddocs_proxy.rb', line 112

def dump(io, serializer = JSON)
  content = {
    "resource" => resource_name,
    "description" => description,
    "explanation" => explanation,
    "parameters" => parameters,
    "requests" => requests
  }
  serializer.dump(content, io)
end