class Webspicy::Web::RackTestClient::Api

Attributes

last_response[R]

Public Class Methods

new(scope, app) click to toggle source
# File lib/webspicy/web/client/rack_test_client.rb, line 62
def initialize(scope, app)
  @scope = scope
  @app = app
end

Public Instance Methods

config() click to toggle source
# File lib/webspicy/web/client/rack_test_client.rb, line 67
def config
  @scope.config
end
delete(url, params = {}, headers = nil, body = nil) click to toggle source
# File lib/webspicy/web/client/rack_test_client.rb, line 161
def delete(url, params = {}, headers = nil, body = nil)
  handler = get_handler(headers)

  info_request("DELETE", url, params, headers, body)

  handler.delete(url, params.to_json, {"CONTENT_TYPE" => "application/json"})
  @last_response = handler.last_response

  debug_response(@last_response)

  @last_response
end
get(url, params = {}, headers = nil, body = nil) click to toggle source
# File lib/webspicy/web/client/rack_test_client.rb, line 84
def get(url, params = {}, headers = nil, body = nil)
  handler = get_handler(headers)

  params = Hash[params.map{|k,v| [k, v.nil? ? "" : v] }]
  info_request("GET", url, params, headers, body)

  handler.get(url, params)
  @last_response = handler.last_response

  debug_response(@last_response)

  @last_response
end
options(url, params = {}, headers = nil, body = nil) click to toggle source
# File lib/webspicy/web/client/rack_test_client.rb, line 71
def options(url, params = {}, headers = nil, body = nil)
  handler = get_handler(headers)

  info_request("OPTIONS", url, params, headers, body)

  handler.options(url, params)
  @last_response = handler.last_response

  debug_response(@last_response)

  @last_response
end
patch(url, params = {}, headers = nil, body = nil) click to toggle source
# File lib/webspicy/web/client/rack_test_client.rb, line 122
def patch(url, params = {}, headers = nil, body = nil)
  handler = get_handler(headers)

  info_request("PATCH", url, params, headers, body)

  handler.patch(url, params.to_json, {"CONTENT_TYPE" => "application/json"})
  @last_response = handler.last_response

  debug_response(@last_response)

  @last_response
end
post(url, params = {}, headers = nil, body = nil) click to toggle source
# File lib/webspicy/web/client/rack_test_client.rb, line 98
def post(url, params = {}, headers = nil, body = nil)
  handler = get_handler(headers)

  url = url + "?" + Rack::Utils.build_query(params) if body && !params.empty?

  case body
  when NilClass
    info_request("POST", url, params, headers, body)
    handler.post(url, params.to_json, {"CONTENT_TYPE" => "application/json"})
  when FileUpload
    file = Rack::Test::UploadedFile.new(body.path, body.content_type)
    info_request("POST", url, params, headers, body)
    handler.post(url, body.param_name.to_sym => file)
  else
    info_request("POST", url, params, headers, body)
    handler.post(url, body)
  end
  @last_response = handler.last_response

  debug_response(@last_response)

  @last_response
end
post_form(url, params = {}, headers = nil, body = nil) click to toggle source
# File lib/webspicy/web/client/rack_test_client.rb, line 148
def post_form(url, params = {}, headers = nil, body = nil)
  handler = get_handler(headers)

  info_request("POST", url, params, headers, body)

  handler.post(url, params)
  @last_response = handler.last_response

  debug_response(@last_response)

  @last_response
end
put(url, params = {}, headers = nil, body = nil) click to toggle source
# File lib/webspicy/web/client/rack_test_client.rb, line 135
def put(url, params = {}, headers = nil, body = nil)
  handler = get_handler(headers)

  info_request("PUT", url, params, headers, body)

  handler.put(url, params.to_json, {"CONTENT_TYPE" => "application/json"})
  @last_response = handler.last_response

  debug_response(@last_response)

  @last_response
end

Private Instance Methods

get_handler(hs) click to toggle source
# File lib/webspicy/web/client/rack_test_client.rb, line 176
def get_handler(hs)
  handler = RackHandler.new(@app)
  hs.each_pair do |k,v|
    handler.header(k,v)
  end if hs
  handler
end