active_shipping 1.2.0 → 1.2.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 167a59476f3013546de9f351d4d62b045ce18695
4
- data.tar.gz: 5a8d406aad880b511e8102fe462a3e344a1660d7
3
+ metadata.gz: 1d7d90329e0d2d80ee6f1eb5ae1f2bdc1f16b6dc
4
+ data.tar.gz: ba9ce52d2f832b124ef5ccd67f4140888eac68d4
5
5
  SHA512:
6
- metadata.gz: 0a21b4a2467b1ead50736c57cd9b3da5494090e6f4866e78d9f91a8cbeff1e89ac1dd7ff82187677ee6f897f718cc4fabd48fb7f8e49b998b5e6e7e51f045fab
7
- data.tar.gz: fce0b6be9e67015c62b6ed7651243ad7e09791ca20502509e29c72138a47c400dfca855f4f6203a5f27796916d09467b2931690f5d6440652913d5b13068c019
6
+ metadata.gz: 549c8f94cc474cd8e00050433bf1b0fddcdb41c2d6afd8a894151e607bb8f33c3f4a77c2c486d9088ed785cde069de5fab9ca012fa2691e4936b81aafb82c2f6
7
+ data.tar.gz: e7999cb24985d89f9de6896ae7534619c6f354c72ba5cd0ac85869d6ffd858255a647d1824d131ee3d327127195a685a3ac5414ceecf2d5d219effc7d108e658
@@ -1,5 +1,9 @@
1
1
  # ActiveShipping CHANGELOG
2
2
 
3
+ ### v1.2.1
4
+
5
+ - Fix compatibility with latest USPS WEBTOOLS international rate schema changes.
6
+
3
7
  ### v1.2.0
4
8
 
5
9
  - Added support for buying labels with FedEx
@@ -21,10 +21,7 @@
21
21
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
22
  #++
23
23
 
24
- require 'active_support'
25
- require 'active_support/json'
26
- require 'active_support/core_ext/enumerable'
27
- require 'active_support/core_ext/class/attribute_accessors'
24
+ require 'active_support/all'
28
25
  require 'active_utils'
29
26
 
30
27
  require 'nokogiri'
@@ -234,7 +234,7 @@ module ActiveShipping
234
234
  def extract_event_details(node)
235
235
  description = node.at('Event').text.upcase
236
236
 
237
- if prefix = ONLY_PREFIX_EVENTS.find { |p| description.starts_with?(p) }
237
+ if prefix = ONLY_PREFIX_EVENTS.find { |p| description.start_with?(p) }
238
238
  description = prefix
239
239
  end
240
240
 
@@ -291,7 +291,7 @@ module ActiveShipping
291
291
  end
292
292
 
293
293
  def world_rates(origin, destination, packages, options = {})
294
- request = build_world_rate_request(packages, destination, options)
294
+ request = build_world_rate_request(origin, packages, destination, options)
295
295
  # never use test mode; rate requests just won't work on test servers
296
296
  parse_rate_response(origin, destination, packages, commit(:world_rates, request, false), options)
297
297
  end
@@ -371,10 +371,11 @@ module ActiveShipping
371
371
  #
372
372
  # package.options[:mail_type] -- one of [:package, :postcard, :matter_for_the_blind, :envelope].
373
373
  # Defaults to :package.
374
- def build_world_rate_request(packages, destination, options)
374
+ def build_world_rate_request(origin, packages, destination, options)
375
375
  country = COUNTRY_NAME_CONVERSIONS[destination.country.code(:alpha2).value] || destination.country.name
376
376
  xml_builder = Nokogiri::XML::Builder.new do |xml|
377
377
  xml.IntlRateV2Request('USERID' => @options[:login]) do
378
+ xml.Revision(2)
378
379
  Array(packages).each_with_index do |package, id|
379
380
  xml.Package('ID' => id) do
380
381
  xml.Pounds(0)
@@ -402,6 +403,9 @@ module ActiveShipping
402
403
  if commercial_type = commercial_type(options)
403
404
  xml.public_send(COMMERCIAL_FLAG_NAME.fetch(commercial_type), 'Y')
404
405
  end
406
+ xml.OriginZip(origin.zip)
407
+ xml.AcceptanceDateTime((options[:acceptance_time] || Time.now.utc).iso8601)
408
+ xml.DestinationPostalCode(destination.zip)
405
409
  end
406
410
  end
407
411
  end
@@ -1,3 +1,3 @@
1
1
  module ActiveShipping
2
- VERSION = "1.2.0"
2
+ VERSION = "1.2.1"
3
3
  end
@@ -1,5 +1,6 @@
1
1
  <?xml version="1.0"?>
2
2
  <IntlRateV2Request USERID="login">
3
+ <Revision>2</Revision>
3
4
  <Package ID="0">
4
5
  <Pounds>0</Pounds>
5
6
  <Ounces>120</Ounces>
@@ -16,5 +17,8 @@
16
17
  <Length>15.00</Length>
17
18
  <Height>4.50</Height>
18
19
  <Girth>29.00</Girth>
20
+ <OriginZip>90210</OriginZip>
21
+ <AcceptanceDateTime>2015-06-01T20:34:29Z</AcceptanceDateTime>
22
+ <DestinationPostalCode>K1P 1J1</DestinationPostalCode>
19
23
  </Package>
20
24
  </IntlRateV2Request>
@@ -1,5 +1,6 @@
1
1
  <?xml version="1.0"?>
2
2
  <IntlRateV2Request USERID="login">
3
+ <Revision>2</Revision>
3
4
  <Package ID="0">
4
5
  <Pounds>0</Pounds>
5
6
  <Ounces>9</Ounces>
@@ -16,5 +17,8 @@
16
17
  <Length>7.48</Length>
17
18
  <Height>0.79</Height>
18
19
  <Girth>12.60</Girth>
20
+ <OriginZip>90210</OriginZip>
21
+ <AcceptanceDateTime>2015-06-01T20:34:29Z</AcceptanceDateTime>
22
+ <DestinationPostalCode>K1P 1J1</DestinationPostalCode>
19
23
  </Package>
20
24
  </IntlRateV2Request>
@@ -233,14 +233,14 @@ class USPSTest < Minitest::Test
233
233
  expected_request = xml_fixture('usps/world_rate_request_without_value')
234
234
  @carrier.expects(:commit).with(:world_rates, expected_request, false).returns(expected_request)
235
235
  @carrier.expects(:parse_rate_response)
236
- @carrier.find_rates(location_fixtures[:beverly_hills], location_fixtures[:ottawa], package_fixtures[:book], :test => true)
236
+ @carrier.find_rates(location_fixtures[:beverly_hills], location_fixtures[:ottawa], package_fixtures[:book], :test => true, :acceptance_time => Time.parse("2015-06-01T20:34:29Z"))
237
237
  end
238
238
 
239
239
  def test_build_world_rate_request_with_package_value
240
240
  expected_request = xml_fixture('usps/world_rate_request_with_value')
241
241
  @carrier.expects(:commit).with(:world_rates, expected_request, false).returns(expected_request)
242
242
  @carrier.expects(:parse_rate_response)
243
- @carrier.find_rates(location_fixtures[:beverly_hills], location_fixtures[:ottawa], package_fixtures[:american_wii], :test => true)
243
+ @carrier.find_rates(location_fixtures[:beverly_hills], location_fixtures[:ottawa], package_fixtures[:american_wii], :test => true, :acceptance_time => Time.parse("2015-06-01T20:34:29Z"))
244
244
  end
245
245
 
246
246
  def test_initialize_options_requirements
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_shipping
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James MacAulay
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-05-29 00:00:00.000000000 Z
14
+ date: 2015-06-02 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: quantified