Class: PlanetExpress::Delivery

Inherits:
Object
  • Object
show all
Includes:
Log4r
Defined in:
lib/planet_express/delivery.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Delivery



8
9
10
11
12
13
# File 'lib/planet_express/delivery.rb', line 8

def initialize *args
  # Settings
  self.configuration ||= PlanetExpress::Configuration.new
  self.logger = Rails.logger
  logger.debug "gateway_url => #{configuration.gateway_url}"
end

Instance Attribute Details

#configurationObject

Returns the value of attribute configuration.



5
6
7
# File 'lib/planet_express/delivery.rb', line 5

def configuration
  @configuration
end

#loggerObject

Returns the value of attribute logger.



6
7
8
# File 'lib/planet_express/delivery.rb', line 6

def logger
  @logger
end

Instance Method Details

#configure {|configuration| ... } ⇒ Object

Yields:



15
16
17
18
# File 'lib/planet_express/delivery.rb', line 15

def configure
  # Override Settings
  yield(configuration)
end

#deliver!Object



28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/planet_express/delivery.rb', line 28

def deliver!
  url = URI.parse configuration.gateway_url
  http, resp    = Net::HTTP.new(url.host, url.port), ''
  http.use_ssl  = url.scheme == 'https'
  logger.debug "SSL version: #{http.ssl_version.inspect}" if http.use_ssl?

  http.start do |h|
    path = url.path
    resp = h.post path, @request.to_s, { 'Content-type' => 'text/xml' }
  end

  build_response(resp.body)
end

#prepare(campaign_id, recipient, personalizations = {}) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/planet_express/delivery.rb', line 20

def prepare campaign_id, recipient, personalizations={}
  @campaign_id, @recipient, @personalizations = campaign_id, recipient, personalizations
  @personalizations.merge!({ :timestamp => Time.now, :email_template => @campaign_id })
  raise PlanetExpress::ArgumentError if campaign_id.nil? or recipient.nil?

  build_request
end