Module: Hub::GitHubAPI::Verbose

Included in:
Hub::GitHubAPI
Defined in:
lib/hub/github_api.rb

Constant Summary collapse

DUMP_HEADERS =
%w[ Authorization X-GitHub-OTP Location ]

Instance Method Summary collapse

Instance Method Details

#dump_body(obj) ⇒ Object



422
423
424
# File 'lib/hub/github_api.rb', line 422

def dump_body(obj)
  verbose_puts obj.body if obj.body
end

#dump_headers(obj, indent) ⇒ Object



428
429
430
431
432
433
434
435
436
437
438
# File 'lib/hub/github_api.rb', line 428

def dump_headers(obj, indent)
  DUMP_HEADERS.each do |header|
    if value = obj[header]
      verbose_puts '%s%s: %s' % [
        indent,
        header,
        value.sub(/^(basic|token) (.+)/i, '\1 [REDACTED]'),
      ]
    end
  end
end

#dump_request_info(req, url) ⇒ Object



405
406
407
408
409
410
411
412
413
414
# File 'lib/hub/github_api.rb', line 405

def dump_request_info(req, url)
  verbose_puts "> %s %s://%s%s" % [
    req.method.to_s.upcase,
    url.scheme,
    url.host,
    req.path,
  ]
  dump_headers(req, '> ')
  dump_body(req)
end

#dump_response_info(res) ⇒ Object



416
417
418
419
420
# File 'lib/hub/github_api.rb', line 416

def dump_response_info(res)
  verbose_puts "< HTTP %s" % res.status
  dump_headers(res, '< ')
  dump_body(res)
end

#finalize_request(req, url) ⇒ Object



389
390
391
392
# File 'lib/hub/github_api.rb', line 389

def finalize_request(req, url)
  super
  dump_request_info(req, url) if verbose?
end

#perform_requestObject



394
395
396
397
398
# File 'lib/hub/github_api.rb', line 394

def perform_request(*)
  res = super
  dump_response_info(res) if verbose?
  res
end

#verbose_puts(msg) ⇒ Object



400
401
402
403
# File 'lib/hub/github_api.rb', line 400

def verbose_puts(msg)
  msg = "\e[36m%s\e[m" % msg if $stderr.tty?
  $stderr.puts msg
end