class UPS::Builders::PackageBuilder

Attributes

name[RW]
opts[RW]

Public Class Methods

new(name, opts = {}) click to toggle source
# File lib/ups/builders/package_builder.rb, line 10
def initialize(name, opts = {})
  self.name = name
  self.opts = opts
end

Public Instance Methods

customer_supplied_packaging() click to toggle source
# File lib/ups/builders/package_builder.rb, line 44
def customer_supplied_packaging
  { code: '02', description: 'Customer Supplied Package' }
end
description() click to toggle source
# File lib/ups/builders/package_builder.rb, line 33
def description
  element_with_value('Description', 'Rate')
end
package_dimensions(dimensions) click to toggle source
# File lib/ups/builders/package_builder.rb, line 48
def package_dimensions(dimensions)
  Element.new('Dimensions').tap do |org|
    org << unit_of_measurement(dimensions[:unit])
    org << element_with_value('Length', dimensions[:length].to_s[0..8])
    org << element_with_value('Width', dimensions[:width].to_s[0..8])
    org << element_with_value('Height', dimensions[:height].to_s[0..8])
  end
end
package_weight(weight, unit) click to toggle source
# File lib/ups/builders/package_builder.rb, line 37
def package_weight(weight, unit)
  Element.new('PackageWeight').tap do |org|
    org << unit_of_measurement(unit)
    org << element_with_value('Weight', weight)
  end
end
packaging_type(packaging_options_hash) click to toggle source
# File lib/ups/builders/package_builder.rb, line 15
def packaging_type(packaging_options_hash)
  code_description 'PackagingType', packaging_options_hash[:code], packaging_options_hash[:description]
end
reference_number() click to toggle source
# File lib/ups/builders/package_builder.rb, line 19
def reference_number
  Element.new('ReferenceNumber').tap do |org|
    org << element_with_value('Code', opts[:reference_number][:type]) if opts[:reference_number][:type]
    org << element_with_value('Value', opts[:reference_number][:value])
  end
end
reference_number_2() click to toggle source
# File lib/ups/builders/package_builder.rb, line 26
def reference_number_2
  Element.new('ReferenceNumber').tap do |org|
    org << element_with_value('Code', opts[:reference_number_2][:type]) if opts[:reference_number_2][:type]
    org << element_with_value('Value', opts[:reference_number_2][:value])
  end
end
to_xml() click to toggle source
# File lib/ups/builders/package_builder.rb, line 57
def to_xml
  Element.new(name).tap do |product|
    product << reference_number if opts[:reference_number]
    product << reference_number_2 if opts[:reference_number_2]
    product << packaging_type(opts[:packaging_type] || customer_supplied_packaging)
    product << description
    product << package_weight(opts[:weight], opts[:unit])
    product << package_dimensions(opts[:dimensions]) if opts[:dimensions]
  end
end