active_shipping 1.7.3 → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +9 -1
- data/Gemfile.activesupport50 +5 -0
- data/active_shipping.gemspec +1 -1
- data/dev.yml +1 -1
- data/lib/active_shipping/carrier.rb +9 -6
- data/lib/active_shipping/carriers/canada_post_pws.rb +1 -1
- data/lib/active_shipping/rate_estimate.rb +6 -1
- data/lib/active_shipping/response.rb +2 -1
- data/lib/active_shipping/version.rb +1 -1
- data/test/unit/carrier_test.rb +124 -0
- data/test/unit/carriers/shipwire_test.rb +51 -54
- data/test/unit/carriers/ups_test.rb +10 -9
- data/test/unit/rate_estimate_test.rb +17 -6
- data/test/unit/response_test.rb +5 -0
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ad9d99cc454f0faea29105ee23c7fd8f2d15abd
|
4
|
+
data.tar.gz: aad314e51332792731f489177fbfc27531f51461
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3d3414ea380fbd020aea383b03e5653455c2c5437722401a70d077405a3d7fcb17340dc14b065591a50985b057b10d795bdf37b5cef4b0a4290d5e0f4c5dab5
|
7
|
+
data.tar.gz: 2a231ba077f8e57ff194461a6654007d600658e7a384cbb9762359b5f7f4e950ca21fee25e012f2d91d1dd8cc187b4374940f171023c137a5359d6378c2346dc
|
data/.travis.yml
CHANGED
@@ -5,7 +5,7 @@ sudo: false
|
|
5
5
|
rvm:
|
6
6
|
- "2.0"
|
7
7
|
- "2.1"
|
8
|
-
- "2.2"
|
8
|
+
- "2.2.2"
|
9
9
|
- "2.3.1"
|
10
10
|
|
11
11
|
gemfile:
|
@@ -13,6 +13,14 @@ gemfile:
|
|
13
13
|
- Gemfile.activesupport40
|
14
14
|
- Gemfile.activesupport41
|
15
15
|
- Gemfile.activesupport42
|
16
|
+
- Gemfile.activesupport50
|
17
|
+
|
18
|
+
matrix:
|
19
|
+
exclude:
|
20
|
+
- rvm: "2.0"
|
21
|
+
gemfile: Gemfile.activesupport50
|
22
|
+
- rvm: "2.1"
|
23
|
+
gemfile: Gemfile.activesupport50
|
16
24
|
|
17
25
|
env:
|
18
26
|
global:
|
data/active_shipping.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.license = 'MIT'
|
16
16
|
|
17
17
|
s.add_dependency('quantified', '~> 1.0.1')
|
18
|
-
s.add_dependency('activesupport', '>= 3.2', '< 5.
|
18
|
+
s.add_dependency('activesupport', '>= 3.2', '< 5.1.0')
|
19
19
|
s.add_dependency('active_utils', '~> 3.2.0')
|
20
20
|
s.add_dependency('nokogiri', '>= 1.6')
|
21
21
|
|
data/dev.yml
CHANGED
@@ -72,8 +72,8 @@ module ActiveShipping
|
|
72
72
|
#
|
73
73
|
# @note Override with whatever you need to cancel a shipping label
|
74
74
|
#
|
75
|
-
# @param shipment_id [String] The unique identifier of the shipment to cancel.
|
76
|
-
# This can be shipment_id or tracking number depending on carrier. Up to you and
|
75
|
+
# @param shipment_id [String] The unique identifier of the shipment to cancel.
|
76
|
+
# This can be shipment_id or tracking number depending on carrier. Up to you and
|
77
77
|
# the carrier
|
78
78
|
# @param options [Hash] Carrier-specific parameters.
|
79
79
|
# @return [ActiveShipping::ShipmentResponse] The response from the carrier. This
|
@@ -162,12 +162,15 @@ module ActiveShipping
|
|
162
162
|
def timestamp_from_business_day(days)
|
163
163
|
return unless days
|
164
164
|
date = DateTime.now.utc
|
165
|
+
|
165
166
|
days.times do
|
166
|
-
|
167
|
-
|
168
|
-
|
167
|
+
date += 1.day
|
168
|
+
|
169
|
+
date += 2.days if date.saturday?
|
170
|
+
date += 1.day if date.sunday?
|
169
171
|
end
|
170
|
-
|
172
|
+
|
173
|
+
date.to_datetime
|
171
174
|
end
|
172
175
|
end
|
173
176
|
end
|
@@ -814,7 +814,7 @@ module ActiveShipping
|
|
814
814
|
end
|
815
815
|
|
816
816
|
class CPPWSTrackingResponse < TrackingResponse
|
817
|
-
DELIVERED_EVENT_CODES = %w(
|
817
|
+
DELIVERED_EVENT_CODES = %w(1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1441 1442 1496 1497 1498 1499 5300)
|
818
818
|
include CPPWSErrorResponse
|
819
819
|
|
820
820
|
attr_reader :service_name, :expected_date, :changed_date, :change_reason, :customer_number
|
@@ -62,13 +62,17 @@ module ActiveShipping
|
|
62
62
|
# @!attribute insurance_price
|
63
63
|
# The price of insurance in cents.
|
64
64
|
# @return [Integer]
|
65
|
+
#
|
66
|
+
# @!attribute delivery_category
|
67
|
+
# The general classification of the delivery method
|
68
|
+
# @return [String]
|
65
69
|
class RateEstimate
|
66
70
|
attr_accessor :origin, :destination, :package_rates,
|
67
71
|
:carrier, :service_name, :service_code,
|
68
72
|
:shipping_date, :delivery_date, :delivery_range,
|
69
73
|
:currency, :negotiated_rate, :insurance_price,
|
70
74
|
:estimate_reference, :expires_at, :pickup_time,
|
71
|
-
:compare_price, :phone_required
|
75
|
+
:compare_price, :phone_required, :delivery_category
|
72
76
|
|
73
77
|
def initialize(origin, destination, carrier, service_name, options = {})
|
74
78
|
self.origin, self.destination, self.carrier, self.service_name = origin, destination, carrier, service_name
|
@@ -90,6 +94,7 @@ module ActiveShipping
|
|
90
94
|
self.shipping_date = options[:shipping_date]
|
91
95
|
self.delivery_date = @delivery_range.last
|
92
96
|
self.insurance_price = options[:insurance_price]
|
97
|
+
self.delivery_category = options[:delivery_category]
|
93
98
|
end
|
94
99
|
|
95
100
|
# The total price of the shipments in cents.
|
@@ -18,12 +18,13 @@ module ActiveShipping #:nodoc:
|
|
18
18
|
# of a request executed against the sandbox or test environment of the carrier's API.
|
19
19
|
# @option options [String] :xml The raw XML of the response.
|
20
20
|
# @option options [String] :request The payload of the request.
|
21
|
+
# @option options [Boolean] :allow_failure Allows a failed response without raising.
|
21
22
|
def initialize(success, message, params = {}, options = {})
|
22
23
|
@success, @message, @params = success, message, params.stringify_keys
|
23
24
|
@test = options[:test] || false
|
24
25
|
@xml = options[:xml]
|
25
26
|
@request = options[:request]
|
26
|
-
raise ResponseError.new(self) unless success
|
27
|
+
raise ResponseError.new(self) unless success || options[:allow_failure]
|
27
28
|
end
|
28
29
|
|
29
30
|
# Whether the request was executed successfully or not.
|
@@ -0,0 +1,124 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class CarrierTest < Minitest::Test
|
4
|
+
class ExampleCarrier < Carrier
|
5
|
+
cattr_reader :name
|
6
|
+
@@name = "Example Carrier"
|
7
|
+
end
|
8
|
+
|
9
|
+
def setup
|
10
|
+
@carrier = ExampleCarrier.new
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_find_rates_not_implemented
|
14
|
+
assert_raises NotImplementedError do
|
15
|
+
@carrier.find_rates(nil, nil, nil)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_create_shipment_not_implemented
|
20
|
+
assert_raises NotImplementedError do
|
21
|
+
@carrier.create_shipment(nil, nil, nil)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_cancel_shipment_not_implemented
|
26
|
+
assert_raises NotImplementedError do
|
27
|
+
@carrier.cancel_shipment(nil)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_find_tracking_info_not_implemented
|
32
|
+
assert_raises NotImplementedError do
|
33
|
+
@carrier.find_tracking_info(nil)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_maximum_weight
|
38
|
+
assert_equal Quantified::Mass.new(150, :pounds), @carrier.maximum_weight
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_maximum_address_field_length
|
42
|
+
assert_equal 255, @carrier.maximum_address_field_length
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_requirements_empty_array
|
46
|
+
assert_equal [], @carrier.send(:requirements)
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_timestamp_from_business_day_returns_nil_without_a_day
|
50
|
+
assert_nil @carrier.send(:timestamp_from_business_day, nil)
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_save_request
|
54
|
+
request = Object.new
|
55
|
+
assert_nil @carrier.last_request
|
56
|
+
@carrier.send(:save_request, request)
|
57
|
+
assert_equal request, @carrier.last_request
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_timestamp_from_business_day_returns_two_days_in_the_future
|
61
|
+
current = DateTime.new(2016, 7, 19) # Tuesday
|
62
|
+
expected = DateTime.new(2016, 7, 21)
|
63
|
+
|
64
|
+
Timecop.freeze(current) do
|
65
|
+
assert_equal expected, @carrier.send(:timestamp_from_business_day, 2)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_timestamp_from_business_day_returns_two_days_in_the_future_over_a_weekend
|
70
|
+
current = DateTime.new(2016, 7, 22) # Friday
|
71
|
+
expected = DateTime.new(2016, 7, 26)
|
72
|
+
|
73
|
+
Timecop.freeze(current) do
|
74
|
+
assert_equal expected, @carrier.send(:timestamp_from_business_day, 2)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_timestamp_from_business_day_returns_fifteen_days_in_the_future
|
79
|
+
current = DateTime.new(2016, 7, 6) # Wednesday
|
80
|
+
expected = DateTime.new(2016, 7, 27) # includes 3 weekends
|
81
|
+
|
82
|
+
Timecop.freeze(current) do
|
83
|
+
assert_equal expected, @carrier.send(:timestamp_from_business_day, 15)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def test_timestamp_from_business_day_handles_saturday
|
88
|
+
current = DateTime.new(2016, 7, 9) # Saturday
|
89
|
+
expected = DateTime.new(2016, 7, 11)
|
90
|
+
|
91
|
+
Timecop.freeze(current) do
|
92
|
+
assert_equal expected, @carrier.send(:timestamp_from_business_day, 1)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_timestamp_from_business_day_handles_sunday
|
97
|
+
current = DateTime.new(2016, 7, 10) # Sunday
|
98
|
+
expected = DateTime.new(2016, 7, 11)
|
99
|
+
|
100
|
+
Timecop.freeze(current) do
|
101
|
+
assert_equal expected, @carrier.send(:timestamp_from_business_day, 1)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def test_timestamp_from_business_day_returns_datetime
|
106
|
+
Timecop.freeze(DateTime.civil(2016, 7, 19)) do
|
107
|
+
assert_equal DateTime, @carrier.send(:timestamp_from_business_day, 1).class
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
def test_default_location
|
112
|
+
result = Carrier.default_location
|
113
|
+
|
114
|
+
assert_equal Location, result.class
|
115
|
+
assert_equal ActiveUtils::Country.find("US"), result.country
|
116
|
+
assert_equal "CA", result.state
|
117
|
+
assert_equal "Beverly Hills", result.city
|
118
|
+
assert_equal "455 N. Rexford Dr.", result.address1
|
119
|
+
assert_equal "3rd Floor", result.address2
|
120
|
+
assert_equal "90210", result.zip
|
121
|
+
assert_equal "1-310-285-1013", result.phone
|
122
|
+
assert_equal "1-310-275-8159", result.fax
|
123
|
+
end
|
124
|
+
end
|
@@ -24,67 +24,65 @@ class ShipwireTest < Minitest::Test
|
|
24
24
|
|
25
25
|
def test_successfully_get_international_rates
|
26
26
|
date = DateTime.new(2011, 8, 1)
|
27
|
-
DateTime.expects(:now).returns(date).at_least_once
|
28
27
|
@carrier.expects(:ssl_post).returns(xml_fixture('shipwire/international_rates_response'))
|
29
28
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
29
|
+
Timecop.freeze(date) do
|
30
|
+
response = @carrier.find_rates(
|
31
|
+
location_fixtures[:ottawa],
|
32
|
+
location_fixtures[:london],
|
33
|
+
package_fixtures.values_at(:book, :wii),
|
34
|
+
:order_id => '#1000',
|
35
|
+
:items => @items
|
36
|
+
)
|
37
|
+
|
38
|
+
assert response.success?
|
39
|
+
|
40
|
+
assert_equal 1, response.rates.size
|
41
|
+
|
42
|
+
assert international = response.rates.first
|
43
|
+
assert_equal "INTL", international.service_code
|
44
|
+
assert_equal "UPS", international.carrier
|
45
|
+
assert_equal "UPS Standard", international.service_name
|
46
|
+
assert_equal 2806, international.total_price
|
47
|
+
assert_equal [date + 1.day, date + 7.days], international.delivery_range
|
48
|
+
end
|
49
49
|
end
|
50
50
|
|
51
51
|
def test_successfully_get_domestic_rates
|
52
52
|
date = DateTime.new(2011, 8, 1)
|
53
|
-
DateTime.expects(:now).returns(date).at_least_once
|
54
53
|
@carrier.expects(:ssl_post).returns(xml_fixture('shipwire/rates_response'))
|
55
54
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
assert_equal [date + 1, date + 1], one_day.delivery_range
|
55
|
+
Timecop.freeze(date) do
|
56
|
+
response = @carrier.find_rates(
|
57
|
+
location_fixtures[:ottawa],
|
58
|
+
location_fixtures[:beverly_hills],
|
59
|
+
package_fixtures.values_at(:book, :wii),
|
60
|
+
:order_id => '#1000',
|
61
|
+
:items => @items
|
62
|
+
)
|
63
|
+
|
64
|
+
assert response.success?
|
65
|
+
|
66
|
+
assert_equal 3, response.rates.size
|
67
|
+
|
68
|
+
assert ground = response.rates.find { |r| r.service_code == "GD" }
|
69
|
+
assert_equal "UPS", ground.carrier
|
70
|
+
assert_equal "UPS Ground", ground.service_name
|
71
|
+
assert_equal 773, ground.total_price
|
72
|
+
assert_equal [date + 1.day, date + 7.days], ground.delivery_range
|
73
|
+
|
74
|
+
assert two_day = response.rates.find { |r| r.service_code == "2D" }
|
75
|
+
assert_equal "UPS", two_day.carrier
|
76
|
+
assert_equal "UPS Second Day Air", two_day.service_name
|
77
|
+
assert_equal 1364, two_day.total_price
|
78
|
+
assert_equal [date + 2.days, date + 2.days], two_day.delivery_range
|
79
|
+
|
80
|
+
assert one_day = response.rates.find { |r| r.service_code == "1D" }
|
81
|
+
assert_equal "USPS", one_day.carrier
|
82
|
+
assert_equal "USPS Express Mail", one_day.service_name
|
83
|
+
assert_equal 2525, one_day.total_price
|
84
|
+
assert_equal [date + 1.day, date + 1.day], one_day.delivery_range
|
85
|
+
end
|
88
86
|
end
|
89
87
|
|
90
88
|
def test_gracefully_handle_new_carrier
|
@@ -167,7 +165,6 @@ class ShipwireTest < Minitest::Test
|
|
167
165
|
|
168
166
|
assert response.success?
|
169
167
|
assert_equal [], response.rates[0].delivery_range
|
170
|
-
assert_nil response.rates[0].delivery_date
|
171
168
|
end
|
172
169
|
|
173
170
|
def test_rate_request_includes_company_if_provided
|
@@ -242,17 +242,18 @@ class UPSTest < Minitest::Test
|
|
242
242
|
def test_delivery_range_takes_weekend_into_consideration
|
243
243
|
mock_response = xml_fixture('ups/test_real_home_as_residential_destination_response')
|
244
244
|
@carrier.expects(:commit).returns(mock_response)
|
245
|
-
Timecop.freeze(DateTime.new(2012, 6, 15))
|
246
|
-
response = @carrier.find_rates( location_fixtures[:beverly_hills],
|
247
|
-
location_fixtures[:real_home_as_residential],
|
248
|
-
package_fixtures.values_at(:chocolate_stuff))
|
249
245
|
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
246
|
+
Timecop.freeze(DateTime.new(2012, 6, 15)) do
|
247
|
+
response = @carrier.find_rates( location_fixtures[:beverly_hills],
|
248
|
+
location_fixtures[:real_home_as_residential],
|
249
|
+
package_fixtures.values_at(:chocolate_stuff))
|
250
|
+
|
251
|
+
date_test = [nil, 3, 2, 1, 1, 1].map do |days|
|
252
|
+
DateTime.now.utc + (days + 2).days if days
|
253
|
+
end
|
254
254
|
|
255
|
-
|
255
|
+
assert_equal date_test, response.rates.map(&:delivery_date)
|
256
|
+
end
|
256
257
|
end
|
257
258
|
|
258
259
|
def test_maximum_weight
|
@@ -2,11 +2,11 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class RateEstimateTest < Minitest::Test
|
4
4
|
def setup
|
5
|
-
@origin = {:
|
6
|
-
@destination = {:
|
7
|
-
@line_items = [Package.new(500, [2, 3, 4], :
|
5
|
+
@origin = {address1: "61A York St", city: "Ottawa", province: "ON", country: "Canada", postal_code: "K1N 5T2"}
|
6
|
+
@destination = {city: "Beverly Hills", state: "CA", country: "United States", postal_code: "90210"}
|
7
|
+
@line_items = [Package.new(500, [2, 3, 4], description: "a box full of stuff", value: 2500)]
|
8
8
|
@carrier = CanadaPost.new(login: 'test')
|
9
|
-
@options = {:
|
9
|
+
@options = {currency: 'USD', delivery_range: [DateTime.new(2016, 7, 1), DateTime.new(2016, 7, 3)]}
|
10
10
|
|
11
11
|
@rate_estimate = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options)
|
12
12
|
end
|
@@ -31,13 +31,13 @@ class RateEstimateTest < Minitest::Test
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def test_rate_estimate_converts_noniso_to_iso
|
34
|
-
rate_estimate = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(:
|
34
|
+
rate_estimate = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(currency: 'UKL'))
|
35
35
|
assert_equal 'GBP', rate_estimate.currency
|
36
36
|
end
|
37
37
|
|
38
38
|
def test_creating_an_estimate_with_an_invalid_currency_raises
|
39
39
|
assert_raises(ActiveUtils::InvalidCurrencyCodeError) do
|
40
|
-
RateEstimate.new(nil, nil, nil, nil, :
|
40
|
+
RateEstimate.new(nil, nil, nil, nil, currency: 'FAKE')
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
@@ -51,4 +51,15 @@ class RateEstimateTest < Minitest::Test
|
|
51
51
|
est = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(compare_price: 10.0))
|
52
52
|
assert_equal 1000, est.compare_price
|
53
53
|
end
|
54
|
+
|
55
|
+
def test_delivery_category_is_set
|
56
|
+
est = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(delivery_category: "local_delivery"))
|
57
|
+
|
58
|
+
assert_equal "local_delivery", est.delivery_category
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_delivery_date_pulls_from_delivery_range
|
62
|
+
assert_equal [DateTime.new(2016, 7, 1), DateTime.new(2016, 7, 3)], @rate_estimate.delivery_range
|
63
|
+
assert_equal DateTime.new(2016, 7, 3), @rate_estimate.delivery_date
|
64
|
+
end
|
54
65
|
end
|
data/test/unit/response_test.rb
CHANGED
@@ -11,4 +11,9 @@ class ResponseTest < Minitest::Test
|
|
11
11
|
RateResponse.new(false, "fail!", {:rate => 'Free!'}, :rates => [stub(:service_name => 'Free!', :total_price => 0)], :xml => "<rate>Free!</rate>")
|
12
12
|
end
|
13
13
|
end
|
14
|
+
|
15
|
+
def test_initialize_failure_no_raise
|
16
|
+
response = RateResponse.new(false, "fail!", {:rate => 'Free!'}, :rates => [stub(:service_name => 'Free!', :total_price => 0)], :xml => "<rate>Free!</rate>", :allow_failure => true)
|
17
|
+
refute response.success?
|
18
|
+
end
|
14
19
|
end
|
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.
|
4
|
+
version: 1.8.0
|
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: 2016-
|
14
|
+
date: 2016-07-05 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: quantified
|
@@ -36,7 +36,7 @@ dependencies:
|
|
36
36
|
version: '3.2'
|
37
37
|
- - "<"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: 5.
|
39
|
+
version: 5.1.0
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -46,7 +46,7 @@ dependencies:
|
|
46
46
|
version: '3.2'
|
47
47
|
- - "<"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 5.
|
49
|
+
version: 5.1.0
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: active_utils
|
52
52
|
requirement: !ruby/object:Gem::Requirement
|
@@ -177,6 +177,7 @@ files:
|
|
177
177
|
- Gemfile.activesupport40
|
178
178
|
- Gemfile.activesupport41
|
179
179
|
- Gemfile.activesupport42
|
180
|
+
- Gemfile.activesupport50
|
180
181
|
- MIT-LICENSE
|
181
182
|
- README.md
|
182
183
|
- Rakefile
|
@@ -389,6 +390,7 @@ files:
|
|
389
390
|
- test/remote/usps_returns_test.rb
|
390
391
|
- test/remote/usps_test.rb
|
391
392
|
- test/test_helper.rb
|
393
|
+
- test/unit/carrier_test.rb
|
392
394
|
- test/unit/carriers/australia_post_test.rb
|
393
395
|
- test/unit/carriers/benchmark_test.rb
|
394
396
|
- test/unit/carriers/canada_post_pws_rating_test.rb
|
@@ -609,6 +611,7 @@ test_files:
|
|
609
611
|
- test/remote/usps_returns_test.rb
|
610
612
|
- test/remote/usps_test.rb
|
611
613
|
- test/test_helper.rb
|
614
|
+
- test/unit/carrier_test.rb
|
612
615
|
- test/unit/carriers/australia_post_test.rb
|
613
616
|
- test/unit/carriers/benchmark_test.rb
|
614
617
|
- test/unit/carriers/canada_post_pws_rating_test.rb
|