Class: UPS::Builders::PackageBuilder
Instance Attribute Summary collapse
Attributes inherited from BuilderBase
#access_request, #document, #license_number, #password, #root, #shipment_root, #user_id
Instance Method Summary
collapse
Methods inherited from BuilderBase
#add_access_request, #add_insurance_charge, #add_itemized_payment_information, #add_master_carton_id, #add_master_carton_indicator, #add_package, #add_payment_information, #add_rate_information, #add_request, #add_ship_from, #add_ship_to, #add_shipment_delivery_confirmation, #add_shipment_direct_delivery_only, #add_shipper, #add_sold_to
Constructor Details
#initialize(name, opts = {}) ⇒ PackageBuilder
Returns a new instance of PackageBuilder.
10
11
12
13
|
# File 'lib/ups/builders/package_builder.rb', line 10
def initialize(name, opts = {})
self.name = name
self.opts = opts
end
|
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
8
9
10
|
# File 'lib/ups/builders/package_builder.rb', line 8
def name
@name
end
|
#opts ⇒ Object
Returns the value of attribute opts.
8
9
10
|
# File 'lib/ups/builders/package_builder.rb', line 8
def opts
@opts
end
|
Instance Method Details
#customer_supplied_packaging ⇒ Object
44
45
46
|
# File 'lib/ups/builders/package_builder.rb', line 44
def customer_supplied_packaging
{ code: '02', description: 'Customer Supplied Package' }
end
|
#description ⇒ Object
33
34
35
|
# File 'lib/ups/builders/package_builder.rb', line 33
def description
element_with_value('Description', 'Rate')
end
|
#package_dimensions(dimensions) ⇒ Object
48
49
50
51
52
53
54
55
|
# 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) ⇒ Object
37
38
39
40
41
42
|
# 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) ⇒ Object
15
16
17
|
# 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 ⇒ Object
19
20
21
22
23
24
|
# 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 ⇒ Object
26
27
28
29
30
31
|
# 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 ⇒ Object
57
58
59
60
61
62
63
64
65
66
|
# 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
|