class SimpleShipping::Ups::Response

Response from UPS.

Public Instance Methods

digest() click to toggle source

Digest what can be used to get a label.

@return [String]

# File lib/simple_shipping/ups/response.rb, line 7
def digest
  value_of(:shipment_results, :shipment_digest)
end
label_html() click to toggle source

Label image.

@return [String] binary

# File lib/simple_shipping/ups/response.rb, line 36
def label_html
  value = value_of(:shipment_results, :package_results, :shipping_label, :html_image)
  Base64.decode64(value) if value
end
label_image_base64() click to toggle source

Get the label as base64 encoded data

response.label_image_base64 # => "odGqk/KmgLaawV..."

This can be used directly in an HTML image tag with

src="data:image/gif;base64,..."
# File lib/simple_shipping/ups/response.rb, line 29
def label_image_base64
  value_of(:shipment_results, :package_results, :shipping_label, :graphic_image)
end
receipt_html() click to toggle source

Receipt.

@return [String] binary

# File lib/simple_shipping/ups/response.rb, line 44
def receipt_html
  value = value_of(:shipment_results, :control_log_receipt, :graphic_image)
  Base64.decode64(value) if value
end
shipment_identification_number() click to toggle source

Unique shipment ID returned by UPS.

@return [Strig]

# File lib/simple_shipping/ups/response.rb, line 14
def shipment_identification_number
  value_of(:shipment_results, :shipment_identification_number)
end
tracking_number() click to toggle source

Get package tracking number to look for delivery process on UPS site.

@return [String] tracking number

# File lib/simple_shipping/ups/response.rb, line 21
def tracking_number
  value_of(:shipment_results, :package_results, :tracking_number)
end
value_of(*path) click to toggle source

Fetch the value of an XML attribute at the path specified as an array of node names but appends the implicit namespace on to the front of the path.

# File lib/simple_shipping/ups/response.rb, line 52
def value_of(*path)
  super(*path.unshift(name_token))
end

Private Instance Methods

name_token() click to toggle source

All UPS requests are namespaced within the same name of the class by convention.

# File lib/simple_shipping/ups/response.rb, line 58
def name_token
  self.class.name.split('::').last.underscore.to_sym
end