Class: Zenbox::Sender
- Inherits:
-
Object
- Object
- Zenbox::Sender
- Defined in:
- lib/zenbox/sender.rb
Overview
Sends out the notice to Zenbox
Constant Summary collapse
- CUSTOMERS_URI =
'/customers.json'.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_zenbox(data) ⇒ Object
Sends the customer data off to Zenbox 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/zenbox/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.
64 65 66 |
# File 'lib/zenbox/sender.rb', line 64 def host @host end |
#http_open_timeout ⇒ Object (readonly)
Returns the value of attribute http_open_timeout.
64 65 66 |
# File 'lib/zenbox/sender.rb', line 64 def http_open_timeout @http_open_timeout end |
#http_read_timeout ⇒ Object (readonly)
Returns the value of attribute http_read_timeout.
64 65 66 |
# File 'lib/zenbox/sender.rb', line 64 def http_read_timeout @http_read_timeout end |
#port ⇒ Object (readonly)
Returns the value of attribute port.
64 65 66 |
# File 'lib/zenbox/sender.rb', line 64 def port @port end |
#protocol ⇒ Object (readonly)
Returns the value of attribute protocol.
64 65 66 |
# File 'lib/zenbox/sender.rb', line 64 def protocol @protocol end |
#proxy_host ⇒ Object (readonly)
Returns the value of attribute proxy_host.
64 65 66 |
# File 'lib/zenbox/sender.rb', line 64 def proxy_host @proxy_host end |
#proxy_pass ⇒ Object (readonly)
Returns the value of attribute proxy_pass.
64 65 66 |
# File 'lib/zenbox/sender.rb', line 64 def proxy_pass @proxy_pass end |
#proxy_port ⇒ Object (readonly)
Returns the value of attribute proxy_port.
64 65 66 |
# File 'lib/zenbox/sender.rb', line 64 def proxy_port @proxy_port end |
#proxy_user ⇒ Object (readonly)
Returns the value of attribute proxy_user.
64 65 66 |
# File 'lib/zenbox/sender.rb', line 64 def proxy_user @proxy_user end |
#secure ⇒ Object (readonly) Also known as: secure?
Returns the value of attribute secure.
64 65 66 |
# File 'lib/zenbox/sender.rb', line 64 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.
64 65 66 |
# File 'lib/zenbox/sender.rb', line 64 def use_system_ssl_cert_chain @use_system_ssl_cert_chain end |
Instance Method Details
#send_to_zenbox(data) ⇒ Object
Sends the customer data off to Zenbox 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 60 61 62 |
# File 'lib/zenbox/sender.rb', line 35 def send_to_zenbox(data) http = setup_http_connection # Set up POST request with formdata and headers request = Net::HTTP::Post.new(url.path) request.set_form_data(data) request.add_field('Accept', 'text/json, application/json') response = begin http.request(request) rescue *HTTP_ERRORS => e log :error, "Timeout while contacting the Zenbox server." nil end case response when Net::HTTPSuccess then log :info, "Success: #{response.class}", response true else log :error, "Failure: #{response.class}", response false end rescue => e log :error, "[Zenbox::Sender#send_to_zenbox] Cannot send notification. Error: #{e.class} - #{e.}\nBacktrace:\n#{e.backtrace.join("\n\t")}" nil end |