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