easypost 3.1.3 → 3.1.4

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
- SHA1:
3
- metadata.gz: c78ad14a13a665a9397b5d2ade56cdad38a669f0
4
- data.tar.gz: e73234c20adee8cfcbc37f2b93fb1c5aa2a6843d
2
+ SHA256:
3
+ metadata.gz: 3f2b1945f7283b88880be5fa9700332289d7007137056113d6223a61e59be79a
4
+ data.tar.gz: a168444a606c919ca7a5f1a940040b2822d25ee88d555ca7a11fb289a3e06962
5
5
  SHA512:
6
- metadata.gz: 29e64cace8628e794a110868fbf3395fe560f1334ebe04218ccab054edf84f64631895196a09967ad06021b405162ee660eb29e86992847dfcfd45dc5b7b1549
7
- data.tar.gz: f5e58cd6bdbe1cf61b3e272986470eb5beb7c9ba8738a4ebe05b727803c741a518ab5d64876ba2ff8bbb5ae2f331c8f6b977b4f53c1839336ebb72c3ef08337a
6
+ metadata.gz: e53924a901d7dc9f25272991d589d7c08b1f28ccba941792925d9fd6ad8b65a57568caf5a15062e227086a2c9d997d85d72d655b21c1be08addc47093a956bff
7
+ data.tar.gz: 6bf95b960ec71c8b79effae947a38fd11a902fba63d98db28b6f7d448a05b4914f7f8a56ffc33452d8660e5898b60a0f953de10f7be0764b9b2b40058034ec4c
data/CHANGELOG CHANGED
@@ -1,3 +1,10 @@
1
+ === 3.1.4 2020-09-29
2
+
3
+ * Don't modify params passed into Address#create (#78; thanks @TheRusskiy)
4
+ * Don't modify `carriers` and `services` parameters to `Shipment.lowest_rate` (#71 / #103, thanks @vladvinnikov and @jurisgalang)
5
+ * When constructing an easypost object, convert the key to a string (#102; thanks @Geesu)
6
+ * Expose the raw HTTP response as `#http_body` on `EasyPost::Error` objects (#101; thanks @Geesu)
7
+
1
8
  === 3.1.3 2020-06-26
2
9
 
3
10
  * Fix bug causing Authorization header to be included in User-Agent header. All users must upgrade.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.1.3
1
+ 3.1.4
@@ -131,7 +131,7 @@ module EasyPost
131
131
 
132
132
  if (400..599).include? response.code.to_i
133
133
  error = JSON.parse(response.body)["error"]
134
- raise Error.new(error["message"], response.code.to_i, error["code"], error["errors"])
134
+ raise Error.new(error["message"], response.code.to_i, error["code"], error["errors"], response.body)
135
135
  end
136
136
 
137
137
  if response["Content-Type"].include? "application/json"
@@ -5,9 +5,11 @@ module EasyPost
5
5
  def self.create(params={}, api_key=nil)
6
6
  url = self.url
7
7
 
8
+ address = params.reject { |k,_| k == :verify || k == :verify_strict }
9
+
8
10
  if params[:verify] || params[:verify_strict]
9
- verify = params.delete(:verify) || []
10
- verify_strict = params.delete(:verify_strict) || []
11
+ verify = params[:verify] || []
12
+ verify_strict = params[:verify_strict] || []
11
13
 
12
14
  url += "?"
13
15
  verify.each do |verification|
@@ -18,7 +20,7 @@ module EasyPost
18
20
  end
19
21
  end
20
22
 
21
- response = EasyPost.make_request(:post, url, api_key, {address: params})
23
+ response = EasyPost.make_request(:post, url, api_key, {address: address})
22
24
  return Util.convert_to_easypost_object(response, api_key)
23
25
  end
24
26
 
@@ -3,15 +3,17 @@ module EasyPost
3
3
  attr_reader :message
4
4
  attr_reader :status
5
5
  attr_reader :http_status # deprecated
6
+ attr_reader :http_body
6
7
  attr_reader :code
7
8
  attr_reader :errors
8
9
 
9
- def initialize(message = nil, status = nil, code = nil, errors = nil)
10
+ def initialize(message = nil, status = nil, code = nil, errors = nil, http_body = nil)
10
11
  @message = message
11
12
  @status = status
12
13
  @http_status = status # deprecated
13
14
  @code = code
14
15
  @errors = errors
16
+ @http_body = http_body
15
17
 
16
18
  super(message)
17
19
  end
@@ -29,4 +31,3 @@ module EasyPost
29
31
  end
30
32
  end
31
33
  end
32
-
@@ -42,7 +42,7 @@ module EasyPost
42
42
  end
43
43
 
44
44
  values.each do |k, v|
45
- @values[k] = Util.convert_to_easypost_object(v, api_key, self, k)
45
+ @values[k.to_s] = Util.convert_to_easypost_object(v, api_key, self, k)
46
46
  @transient_values.delete(k)
47
47
  @unsaved_values.delete(k)
48
48
  end
@@ -66,9 +66,7 @@ module EasyPost
66
66
 
67
67
  self.get_rates unless self.rates
68
68
 
69
- carriers = carriers.is_a?(String) ? carriers.split(',') : Array(carriers)
70
- carriers.map!(&:downcase)
71
- carriers.map!(&:strip)
69
+ carriers = EasyPost::Util.normalize_string_list(carriers)
72
70
 
73
71
  negative_carriers = []
74
72
  carriers_copy = carriers.clone
@@ -79,9 +77,7 @@ module EasyPost
79
77
  end
80
78
  end
81
79
 
82
- services = services.is_a?(String) ? services.split(',') : Array(services)
83
- services.map!(&:downcase)
84
- services.map!(&:strip)
80
+ services = EasyPost::Util.normalize_string_list(services)
85
81
 
86
82
  negative_services = []
87
83
  services_copy = services.clone
@@ -15,6 +15,11 @@ module EasyPost
15
15
  end
16
16
  end
17
17
 
18
+ def self.normalize_string_list(lst)
19
+ lst = lst.is_a?(String) ? lst.split(',') : Array(lst)
20
+ lst.map(&:to_s).map(&:downcase).map(&:strip)
21
+ end
22
+
18
23
  def self.convert_to_easypost_object(response, api_key, parent=nil, name=nil)
19
24
  types = {
20
25
  'Address' => Address,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easypost
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.3
4
+ version: 3.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jake Epstein
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-06-26 00:00:00.000000000 Z
13
+ date: 2020-09-30 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: pry
@@ -147,8 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
147
  - !ruby/object:Gem::Version
148
148
  version: '0'
149
149
  requirements: []
150
- rubyforge_project:
151
- rubygems_version: 2.2.2
150
+ rubygems_version: 3.0.6
152
151
  signing_key:
153
152
  specification_version: 4
154
153
  summary: EasyPost Ruby Client Library