easypost 3.1.3 → 3.1.4

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