Module: Zotero::NetworkErrors
- Included in:
- Client
- Defined in:
- lib/zotero/network_errors.rb
Overview
Handles network errors and translates them to appropriate Zotero exceptions
Constant Summary collapse
- ERROR_MESSAGES =
{ Errno::ECONNREFUSED => "Connection refused - server may be down", Errno::EHOSTUNREACH => "Host unreachable - check network connectivity", Errno::ENETUNREACH => "Host unreachable - check network connectivity", SocketError => "DNS resolution failed - check hostname", Net::OpenTimeout => "Connection timeout - server took too long to respond", Net::ReadTimeout => "Read timeout - server response was too slow", OpenSSL::SSL::SSLError => "SSL error - certificate verification failed", Timeout::Error => "Request timeout" }.freeze
Instance Method Summary collapse
- #error_message_for(error) ⇒ Object private
- #handle_network_errors ⇒ Object
- #network_error_classes ⇒ Object private
- #translate_network_error(error) ⇒ Object private
Instance Method Details
#error_message_for(error) ⇒ Object (private)
46 47 48 |
# File 'lib/zotero/network_errors.rb', line 46 def (error) ERROR_MESSAGES.fetch(error.class) { "Network error: #{error.message}" } end |
#handle_network_errors ⇒ Object
20 21 22 23 24 |
# File 'lib/zotero/network_errors.rb', line 20 def handle_network_errors yield rescue *network_error_classes => e raise translate_network_error(e) end |
#network_error_classes ⇒ Object (private)
28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/zotero/network_errors.rb', line 28 def network_error_classes [ Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Errno::ENETUNREACH, SocketError, Net::OpenTimeout, Net::ReadTimeout, OpenSSL::SSL::SSLError, Timeout::Error ] end |
#translate_network_error(error) ⇒ Object (private)
41 42 43 44 |
# File 'lib/zotero/network_errors.rb', line 41 def translate_network_error(error) = (error) Error.new("#{message} (#{error.class})") end |