class Mocapi::ShowRequest

Public Class Methods

new(app = nil) click to toggle source
# File lib/mocapi.rb, line 49
def initialize(app = nil)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/mocapi.rb, line 53
def call(env)
  request = Rack::Request.new(env)
  response = if @app
    @app.call(env)
  else
    Rack::Response.new(env)
  end

  show_request_detail  request
  show_response_detail response

  response
end
show(str) click to toggle source
# File lib/mocapi.rb, line 101
def show(str)
  STDOUT.puts str
end
show_request_detail(request) click to toggle source
# File lib/mocapi.rb, line 67
    def show_request_detail(request)
      show <<-EOS

    Request URI  : #{request.fullpath}
    HTTP Method  : #{request.request_method}
    Path         : #{request.path}
    Content Type : #{request.content_type}
    Query        : #{request.query_string}
    Request Body :
    #{request.body.read}
      EOS

      request.body.rewind
    end
show_response_detail(response) click to toggle source
# File lib/mocapi.rb, line 82
    def show_response_detail(response)
      status_code, headers, body = *response
      max_length = (headers.keys + ['Response Body']).map(&:length).max

      show <<-EOS
    #{'Status Code'.ljust(max_length)} : #{status_code}
      EOS

      headers.each do |key, value|
        show "    #{key.ljust(max_length)} : #{value}"
      end

      show <<-EOS
    #{'Response Body'.ljust(max_length)} :
    #{body.join('\n')}

      EOS
    end