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



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

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

#dump_headers(obj, indent) ⇒ Object



392
393
394
395
396
397
398
399
400
401
402
# File 'lib/hub/github_api.rb', line 392

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



369
370
371
372
373
374
375
376
377
378
# File 'lib/hub/github_api.rb', line 369

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



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

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

#finalize_request(req, url) ⇒ Object



353
354
355
356
# File 'lib/hub/github_api.rb', line 353

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

#perform_requestObject



358
359
360
361
362
# File 'lib/hub/github_api.rb', line 358

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

#verbose_puts(msg) ⇒ Object



364
365
366
367
# File 'lib/hub/github_api.rb', line 364

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