Module: Webspicy::Web::Client::Support

Includes:
Support::Colorize
Included in:
HttpClient::Api, RackTestClient::Api
Defined in:
lib/webspicy/web/client/support.rb

Constant Summary collapse

NONE =
Object.new

Instance Method Summary collapse

Methods included from Support::Colorize

colorize, colorize_error, colorize_highlight, colorize_section, colorize_success

Instance Method Details

#debug(what, value = NONE) ⇒ Object



28
29
30
31
# File 'lib/webspicy/web/client/support.rb', line 28

def debug(what, value = NONE)
  return Webspicy.debug("  #{what}") if value == NONE
  Webspicy.debug("  #{what}: " + value_to_s(value))
end

#debug_response(response) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/webspicy/web/client/support.rb', line 20

def debug_response(response)
  debug(colorize_highlight("."))
  debug("  Res status", status_to_s(@last_response.status))
  debug("  Res headers", json_pretty(last_response.headers.to_h))
  debug("  Res body", response_body_to_s(last_response))
  Webspicy.debug("")
end

#info_request(kind, url, params, headers, body) ⇒ Object



13
14
15
16
17
18
# File 'lib/webspicy/web/client/support.rb', line 13

def info_request(kind, url, params, headers, body)
  Webspicy.info(colorize_highlight("~> #{kind} #{url}"))
  debug("  Req params", json_pretty(params)) if params
  debug("  Req headers", json_pretty(headers)) if headers
  debug("  Req body", request_body_to_s(body)) if body
end

#json_pretty(s) ⇒ Object



58
59
60
# File 'lib/webspicy/web/client/support.rb', line 58

def json_pretty(s)
  JSON.pretty_generate(s)
end

#querystring_params(params) ⇒ Object



9
10
11
# File 'lib/webspicy/web/client/support.rb', line 9

def querystring_params(params)
  Hash[params.each_pair.map{|k,v| [k.to_s,v.to_s] }]
end

#request_body_to_s(body) ⇒ Object



33
34
35
36
# File 'lib/webspicy/web/client/support.rb', line 33

def request_body_to_s(body)
  body = body.to_info if body.is_a?(Webspicy::FileUpload)
  json_pretty(body)
end

#response_body_to_s(response) ⇒ Object



38
39
40
41
42
43
44
45
# File 'lib/webspicy/web/client/support.rb', line 38

def response_body_to_s(response)
  case response.content_type.to_s
  when /json/
    json_pretty(JSON.load(response.body))
  else
    response.body.to_s
  end
end

#status_to_s(status) ⇒ Object



51
52
53
54
55
56
# File 'lib/webspicy/web/client/support.rb', line 51

def status_to_s(status)
  case status
  when 0 ... 400 then colorize_success(status.to_s)
  else colorize_error(status.to_s)
  end
end

#value_to_s(value) ⇒ Object



47
48
49
# File 'lib/webspicy/web/client/support.rb', line 47

def value_to_s(value)
  value.to_s.gsub(/\n/, "\n      ")
end