Class: Airbrake::Sender
- Inherits:
-
Object
- Object
- Airbrake::Sender
- Defined in:
- lib/airbrake/sender.rb
Overview
Sends out the notice to Airbrake
Constant Summary collapse
- NOTICES_URI =
'/notifier_api/v2/notices/'.freeze
- HTTP_ERRORS =
[Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError, Errno::ECONNREFUSED].freeze
Instance Attribute Summary collapse
-
#host ⇒ Object
readonly
Returns the value of attribute host.
-
#http_open_timeout ⇒ Object
readonly
Returns the value of attribute http_open_timeout.
-
#http_read_timeout ⇒ Object
readonly
Returns the value of attribute http_read_timeout.
-
#port ⇒ Object
readonly
Returns the value of attribute port.
-
#protocol ⇒ Object
readonly
Returns the value of attribute protocol.
-
#proxy_host ⇒ Object
readonly
Returns the value of attribute proxy_host.
-
#proxy_pass ⇒ Object
readonly
Returns the value of attribute proxy_pass.
-
#proxy_port ⇒ Object
readonly
Returns the value of attribute proxy_port.
-
#proxy_user ⇒ Object
readonly
Returns the value of attribute proxy_user.
-
#secure ⇒ Object
(also: #secure?)
readonly
Returns the value of attribute secure.
-
#use_system_ssl_cert_chain ⇒ Object
(also: #use_system_ssl_cert_chain?)
readonly
Returns the value of attribute use_system_ssl_cert_chain.
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Sender
constructor
A new instance of Sender.
-
#send_to_airbrake(data) ⇒ Object
Sends the notice data off to Airbrake for processing.
Constructor Details
#initialize(options = {}) ⇒ Sender
Returns a new instance of Sender.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/airbrake/sender.rb', line 15 def initialize( = {}) [ :proxy_host, :proxy_port, :proxy_user, :proxy_pass, :protocol, :host, :port, :secure, :use_system_ssl_cert_chain, :http_open_timeout, :http_read_timeout ].each do |option| instance_variable_set("@#{option}", [option]) end end |
Instance Attribute Details
#host ⇒ Object (readonly)
Returns the value of attribute host.
61 62 63 |
# File 'lib/airbrake/sender.rb', line 61 def host @host end |
#http_open_timeout ⇒ Object (readonly)
Returns the value of attribute http_open_timeout.
61 62 63 |
# File 'lib/airbrake/sender.rb', line 61 def http_open_timeout @http_open_timeout end |
#http_read_timeout ⇒ Object (readonly)
Returns the value of attribute http_read_timeout.
61 62 63 |
# File 'lib/airbrake/sender.rb', line 61 def http_read_timeout @http_read_timeout end |
#port ⇒ Object (readonly)
Returns the value of attribute port.
61 62 63 |
# File 'lib/airbrake/sender.rb', line 61 def port @port end |
#protocol ⇒ Object (readonly)
Returns the value of attribute protocol.
61 62 63 |
# File 'lib/airbrake/sender.rb', line 61 def protocol @protocol end |
#proxy_host ⇒ Object (readonly)
Returns the value of attribute proxy_host.
61 62 63 |
# File 'lib/airbrake/sender.rb', line 61 def proxy_host @proxy_host end |
#proxy_pass ⇒ Object (readonly)
Returns the value of attribute proxy_pass.
61 62 63 |
# File 'lib/airbrake/sender.rb', line 61 def proxy_pass @proxy_pass end |
#proxy_port ⇒ Object (readonly)
Returns the value of attribute proxy_port.
61 62 63 |
# File 'lib/airbrake/sender.rb', line 61 def proxy_port @proxy_port end |
#proxy_user ⇒ Object (readonly)
Returns the value of attribute proxy_user.
61 62 63 |
# File 'lib/airbrake/sender.rb', line 61 def proxy_user @proxy_user end |
#secure ⇒ Object (readonly) Also known as: secure?
Returns the value of attribute secure.
61 62 63 |
# File 'lib/airbrake/sender.rb', line 61 def secure @secure end |
#use_system_ssl_cert_chain ⇒ Object (readonly) Also known as: use_system_ssl_cert_chain?
Returns the value of attribute use_system_ssl_cert_chain.
61 62 63 |
# File 'lib/airbrake/sender.rb', line 61 def use_system_ssl_cert_chain @use_system_ssl_cert_chain end |
Instance Method Details
#send_to_airbrake(data) ⇒ Object
Sends the notice data off to Airbrake for processing.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/airbrake/sender.rb', line 35 def send_to_airbrake(data) http = setup_http_connection response = begin http.post(url.path, data, HEADERS) rescue *HTTP_ERRORS => e log :error, "Timeout while contacting the Airbrake server." nil end case response when Net::HTTPSuccess then log :info, "Success: #{response.class}", response else log :error, "Failure: #{response.class}", response end if response && response.respond_to?(:body) error_id = response.body.match(%r{<error-id[^>]*>(.*?)</error-id>}) error_id[1] if error_id end rescue => e log :error, "[Airbrake::Sender#send_to_airbrake] Cannot send notification. Error: #{e.class} - #{e.}\nBacktrace:\n#{e.backtrace.join("\n\t")}" nil end |