class Docomoru::ResponseRenderer

Public Class Methods

new(response, show_header: nil, show_body: nil) click to toggle source
# File lib/docomoru/response_renderer.rb, line 6
def initialize(response, show_header: nil, show_body: nil)
  @response = response
  @show_body = show_body
  @show_header = show_header
end

Public Instance Methods

to_s() click to toggle source
# File lib/docomoru/response_renderer.rb, line 12
def to_s
  template % {
    status: status,
    headers: headers,
    body: body,
  }
end

Private Instance Methods

body() click to toggle source
# File lib/docomoru/response_renderer.rb, line 22
def body
  JSON.pretty_generate(@response.body) + "\n"
end
headers() click to toggle source
# File lib/docomoru/response_renderer.rb, line 26
def headers
  @response.headers.sort_by do |key, value|
    key
  end.map do |key, value|
    "%{key}: %{value}" % {
      key: key.split("-").map(&:camelize).join("-"),
      value: value,
    }
  end.join("\n")
end
status() click to toggle source
# File lib/docomoru/response_renderer.rb, line 37
def status
  "#{@response.status} #{@response.status_message}"
end
template() click to toggle source
# File lib/docomoru/response_renderer.rb, line 41
    def template
      str = ""
      str << <<-EOS.strip_heredoc if @show_header
        HTTP/1.1 %{status}
        %{headers}
      EOS
      if @show_body
        str << "\n" if @show_header
        str << "%{body}"
      end
      str
    end