class PuppetForge::Connection::ConnectionFailure

Wrap Faraday connection failures to include the host and optional proxy in use for the failed connection.

Public Instance Methods

call(env) click to toggle source
# File lib/puppet_forge/connection/connection_failure.rb, line 8
def call(env)
  @app.call(env)
rescue Faraday::ConnectionFailed => e
  baseurl = env[:url].dup
  baseurl.path = ''
  if proxy = env[:request][:proxy]
    errmsg = _("Unable to connect to %{url} (using proxy %{proxy})") % {url: baseurl.to_s, proxy: proxy.uri.to_s}
  else
    errmsg = _("Unable to connect to %{url}") % {url: baseurl.to_s}
  end
  errmsg << ": #{e.message}"
  m = Faraday::ConnectionFailed.new(errmsg)
  m.set_backtrace(e.backtrace)
  raise m
end