hushed 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []