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



407
408
409
# File 'lib/hub/github_api.rb', line 407

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

#dump_headers(obj, indent) ⇒ Object



413
414
415
416
417
418
419
420
421
422
423
# File 'lib/hub/github_api.rb', line 413

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



390
391
392
393
394
395
396
397
398
399
# File 'lib/hub/github_api.rb', line 390

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



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

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

#finalize_request(req, url) ⇒ Object



374
375
376
377
# File 'lib/hub/github_api.rb', line 374

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

#perform_requestObject



379
380
381
382
383
# File 'lib/hub/github_api.rb', line 379

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

#verbose_puts(msg) ⇒ Object



385
386
387
388
# File 'lib/hub/github_api.rb', line 385

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