class RspecApiDocumentation::RackTestClient

Public Instance Methods

query_string() click to toggle source
# File lib/rspec_api_documentation/rack_test_client.rb, line 15
def query_string
  last_request.env["QUERY_STRING"]
end
request_content_type() click to toggle source
# File lib/rspec_api_documentation/rack_test_client.rb, line 27
def request_content_type
  last_request.content_type
end
request_headers() click to toggle source
# File lib/rspec_api_documentation/rack_test_client.rb, line 7
def request_headers
  env_to_headers(last_request.env)
end
response_body() click to toggle source
# File lib/rspec_api_documentation/rack_test_client.rb, line 23
def response_body
  last_response.body
end
response_content_type() click to toggle source
# File lib/rspec_api_documentation/rack_test_client.rb, line 31
def response_content_type
  last_response.content_type
end
response_headers() click to toggle source
# File lib/rspec_api_documentation/rack_test_client.rb, line 11
def response_headers
  last_response.headers
end
status() click to toggle source
# File lib/rspec_api_documentation/rack_test_client.rb, line 19
def status
  last_response.status
end

Protected Instance Methods

do_request(method, path, params, request_headers) click to toggle source
# File lib/rspec_api_documentation/rack_test_client.rb, line 37
def do_request(method, path, params, request_headers)
  rack_test_session.send(method, path, params, headers(method, path, params, request_headers))
end
handle_multipart_body(request_headers, request_body) click to toggle source
# File lib/rspec_api_documentation/rack_test_client.rb, line 45
def handle_multipart_body(request_headers, request_body)
  parsed_parameters = Rack::Request.new({
    "CONTENT_TYPE" => request_headers["Content-Type"],
    "rack.input" => StringIO.new(request_body)
  }).params

  clean_out_uploaded_data(parsed_parameters,request_body)
end
headers(*args) click to toggle source
# File lib/rspec_api_documentation/rack_test_client.rb, line 41
def headers(*args)
  headers_to_env(super)
end

Private Instance Methods

rack_test_session() click to toggle source
# File lib/rspec_api_documentation/rack_test_client.rb, line 56
def rack_test_session
  @rack_test_session ||= Struct.new(:app) do
    begin
      require "rack/test"
      include Rack::Test::Methods
    rescue LoadError
      raise "#{self.class.name} requires Rack::Test >= 0.5.5. Please add it to your test dependencies."
    end
  end.new(app)
end