class RspecApiDocumentation::Writers::CombinedTextExample

Attributes

example[R]

Public Class Methods

new(example) click to toggle source
# File lib/rspec_api_documentation/writers/combined_text_writer.rb, line 42
def initialize(example)
  @example = example
end

Public Instance Methods

description() click to toggle source
# File lib/rspec_api_documentation/writers/combined_text_writer.rb, line 50
def description
  example.description + "\n" + "-" * example.description.length + "\n\n"
end
parameters() click to toggle source
# File lib/rspec_api_documentation/writers/combined_text_writer.rb, line 54
def parameters
  return "" unless example.metadata[:parameters]
  "Parameters:\n" + example.metadata[:parameters].inject("") do |out, parameter|
    out << "  * #{parameter[:name]} - #{parameter[:description]}\n"
  end + "\n"
end
requests() click to toggle source
# File lib/rspec_api_documentation/writers/combined_text_writer.rb, line 61
def requests
  return [] unless example.metadata[:requests]
  example.metadata[:requests].map do |request|
    [format_request(request), format_response(request)]
  end
end
resource_name() click to toggle source
# File lib/rspec_api_documentation/writers/combined_text_writer.rb, line 46
def resource_name
  example.resource_name.to_s.downcase.gsub(/\s+/, '_')
end

Private Instance Methods

format_hash(hash, separator="=") click to toggle source
# File lib/rspec_api_documentation/writers/combined_text_writer.rb, line 98
def format_hash(hash, separator="=")
  return unless hash
  hash.sort_by { |k, v| k }.map do |k, v|
    "  #{k}#{separator}#{v}"
  end.join("\n")
end
format_request(request) click to toggle source
# File lib/rspec_api_documentation/writers/combined_text_writer.rb, line 69
def format_request(request)
  [
    [
      "  #{request[:request_method]} #{request[:request_path]}",
      format_hash(request[:request_headers], ": ")
    ],
    [
      format_string(request[:request_body]) || format_hash(request[:request_query_parameters])
    ]
  ].map { |x| x.compact.join("\n") }.reject(&:blank?).join("\n\n") + "\n"
end
format_response(request) click to toggle source
# File lib/rspec_api_documentation/writers/combined_text_writer.rb, line 81
def format_response(request)
  [
    [
      "  Status: #{request[:response_status]} #{request[:response_status_text]}",
      format_hash(request[:response_headers], ": ")
    ],
    [
      format_string(request[:response_body])
    ]
  ].map { |x| x.compact.join("\n") }.reject(&:blank?).join("\n\n") + "\n"
end
format_string(string) click to toggle source
# File lib/rspec_api_documentation/writers/combined_text_writer.rb, line 93
def format_string(string)
  return unless string
  string.split("\n").map { |line| "  #{line}" }.join("\n")
end