hushed 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,6 +19,8 @@ module Hushed
19
19
  def initialize(options = {})
20
20
  @order = options[:order] || raise(MissingOrderError.new("order cannot be missing"))
21
21
  @client = options[:client] || raise(MissingClientError.new("client cannot be missing"))
22
+ @carrier = options[:carrier]
23
+ @service_level = options[:service_level]
22
24
  end
23
25
 
24
26
  def to_xml
@@ -26,21 +28,29 @@ module Hushed
26
28
  xml.ShipOrderDocument(xmlns: NAMESPACE) do
27
29
  xml.ClientID client_id
28
30
  xml.BusinessUnit business_unit
29
- xml.OrderHeader(order_header_attributes) do
30
- xml.Comments @order.note
31
- xml.ShipMode(shipping_attributes(@order.shipping_lines.first))
32
- xml.ShipTo(address_attributes(@order.shipping_address))
33
- xml.BillTo(address_attributes(@order.billing_address))
34
- xml.DeclaredValue @order.total_price
35
- @order.line_items.each.with_index(1) do |line_item, index|
36
- xml.OrderDetails(line_item_attributes(line_item, index))
37
- end
38
- end
31
+ attach_order_header(xml, order_header_attributes, @order)
32
+ attach_order_details(xml, @order.line_items)
39
33
  end
40
34
  end
41
35
  builder.to_xml
42
36
  end
43
37
 
38
+ def attach_order_header(xml, header_attributes, order)
39
+ xml.OrderHeader(order_header_attributes) do
40
+ xml.Comments order.note
41
+ xml.ShipMode(shipping_attributes(order.shipping_lines.first))
42
+ xml.ShipTo(address_attributes(order.shipping_address))
43
+ xml.BillTo(address_attributes(order.billing_address))
44
+ xml.DeclaredValue order.total_price
45
+ end
46
+ end
47
+
48
+ def attach_order_details(xml, line_items)
49
+ line_items.each.with_index(1) do |line_item, index|
50
+ xml.OrderDetails(line_item_attributes(line_item, index))
51
+ end
52
+ end
53
+
44
54
  def type
45
55
  'ShipmentOrder'
46
56
  end
@@ -66,11 +76,11 @@ module Hushed
66
76
  end
67
77
 
68
78
  def order_header_attributes
69
- {OrderNumber: document_number, OrderType: order_type, OrderDate: date, ShipDate: date}
79
+ {OrderNumber: document_number, OrderType: order_type, OrderDate: date.iso8601, ShipDate: date.iso8601}
70
80
  end
71
81
 
72
82
  def shipping_attributes(shipping_line)
73
- {Carrier: shipping_line.carrier, ServiceLevel: shipping_line.service_level}
83
+ {Carrier: @carrier || shipping_line.carrier, ServiceLevel: @service_level || shipping_line.service_level}
74
84
  end
75
85
 
76
86
  def address_attributes(address)
@@ -42,7 +42,7 @@ module Hushed
42
42
  {
43
43
  ClientId: @client.client_id, BusinessUnit: @client.business_unit,
44
44
  DocumentName: @document.filename, DocumentType: @document.type,
45
- Warehouse: @document.warehouse, MessageDate: @document.date.utc,
45
+ Warehouse: @document.warehouse, MessageDate: @document.date.utc.iso8601,
46
46
  MessageId: @document.message_id, xmlns: NAMESPACE
47
47
  }
48
48
  end
@@ -1,3 +1,3 @@
1
1
  module Hushed
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -54,8 +54,8 @@ module Hushed
54
54
  private
55
55
  def assert_header(header)
56
56
  assert_equal "#{@order.id}", header['OrderNumber']
57
- assert_equal @order.created_at.utc.to_s, header['OrderDate']
58
- assert_equal @order.created_at.utc.to_s, header['ShipDate']
57
+ assert_equal @order.created_at.utc.iso8601, header['OrderDate']
58
+ assert_equal @order.created_at.utc.iso8601, header['ShipDate']
59
59
  assert_equal @order.type, header['OrderType']
60
60
  end
61
61
 
@@ -46,7 +46,7 @@ module Hushed
46
46
  assert_equal @document.type, node['DocumentType']
47
47
  assert_equal @document.filename, node['DocumentName']
48
48
  assert_equal @document.warehouse, node['Warehouse']
49
- assert_equal @document.date.utc.to_s, node['MessageDate']
49
+ assert_equal @document.date.utc.iso8601, node['MessageDate']
50
50
  assert_equal @document.message_id, node['MessageId']
51
51
 
52
52
  assert_equal @client.client_id, node['ClientId']
metadata CHANGED
@@ -2,14 +2,14 @@
2
2
  name: hushed
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.8
5
+ version: 0.0.9
6
6
  platform: ruby
7
7
  authors:
8
8
  - Chris Saunders
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-10 00:00:00.000000000 Z
12
+ date: 2013-09-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  prerelease: false
@@ -272,7 +272,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
272
272
  - !ruby/object:Gem::Version
273
273
  segments:
274
274
  - 0
275
- hash: 2857053908953534475
275
+ hash: 1901725543110324787
276
276
  version: '0'
277
277
  none: false
278
278
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -281,7 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
281
281
  - !ruby/object:Gem::Version
282
282
  segments:
283
283
  - 0
284
- hash: 2857053908953534475
284
+ hash: 1901725543110324787
285
285
  version: '0'
286
286
  none: false
287
287
  requirements: []