class Dox::Printers::ExampleRequestPrinter
Attributes
example[RW]
Public Instance Methods
print(example)
click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 4 def print(example) self.example = example add_example_request end
Private Instance Methods
acquire_header_params()
click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 53 def acquire_header_params example.request_headers.map do |key, value| { name: key, in: :header, example: value } end end
add_content(body)
click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 20 def add_content(body) add_content_name(body['content'] = find_or_add(body, 'content')) end
add_content_name(body)
click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 24 def add_content_name(body) req_header = find_headers(example.request_headers) add_example(body[req_header] = find_or_add(body, req_header)) add_schema(body[req_header], Dox.config.schema_request_folder_path) end
add_desc(body)
click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 34 def add_desc(body) body[example.desc] = { 'summary' => example.desc, 'value' => formatted_body(example.request_body, example.request_content_type) } end
add_example(body)
click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 30 def add_example(body) add_desc(body['examples'] = find_or_add(body, 'examples')) end
add_example_request()
click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 13 def add_example_request spec['parameters'] = add_new_header_params(find_or_add(spec, 'parameters', [])) return if example.request_body.empty? add_content(find_or_add(spec, 'requestBody')) end
add_new_header_params(header_params)
click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 59 def add_new_header_params(header_params) example.request_headers.each do |key, value| header_params.push(name: key, in: :header, example: value) unless header_params.detect { |hash| hash[:name] == key } end header_params end
add_schema(body, path)
click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 40 def add_schema(body, path) return if example.request_schema.nil? return unless path file_path = File.join(path, "#{example.request_schema}.json") body['schema'] = File.file?(file_path) ? { '$ref' => file_path } : JSON.parse(example.request_schema) end
find_headers(headers)
click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 49 def find_headers(headers) headers.find { |key, _| key == 'Accept' }&.last || 'any' end