shippo 2.0.2 → 2.0.3

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: e44e42bd3f8ae770ad2bc86450e743316b0a3c00
4
- data.tar.gz: f65f112e86664cfd0a31d3255f9bf1b7aff8b9ad
3
+ metadata.gz: 105c04ef4d6f5e4b072873aa6bb6f03efad91223
4
+ data.tar.gz: 8dbddd63351b6e198f23fa7aeedad433ac797d96
5
5
  SHA512:
6
- metadata.gz: 01cc016039998cc881abb0054ca5d365335705575b4536e90618368f36d9c669078adf4b28b4dd2a040597ab296b08c9b0555a0bcd9b36fc85239c4308262547
7
- data.tar.gz: 3cb75534c1c959a222171c75d184757e07e9b90deecc730493ab4571bf2d93adf5f89b777e5612b3c6e69dfce0a1031a1cfa5ff0b8cbccf564897c4a66b35670
6
+ metadata.gz: 3a9b9fb339fd6138f6c9d6c62e003d8e1cd3aaf885ca3626bc7936aa5066784fbdfa6a3233ef84f0b04407144811f7b0da550adec95fbf570473625f8f32580e
7
+ data.tar.gz: 8bf08f6931dd898d0e8516470cb2d8abade37614a425bc782b19132c57cb883844255180443d24cc88631a4239dcd1d4e9f0b7e926e669532280d5ac8ac65e99
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ #### 2.0.3 release, Oct 3rd 2016
2
+
3
+ * Handled RestClient::BadRequest to show response content
4
+
1
5
  #### 2.0.2 release, Aug 17th 2016
2
6
 
3
7
  * Removed gem dependency `colored2` as directly decorating object and string was causing Rals Rack to throw errors when users uploaded large files.
data/README.md CHANGED
@@ -10,7 +10,7 @@ Shippo is a shipping API that connects you with [multiple shipping carriers](htt
10
10
 
11
11
  Print a shipping label in 10 mins using our default USPS and DHL Express accounts. No need to register for a carrier account to get started.
12
12
 
13
- You will need to [register for a Shippo account](https://goshippo.com/) to use the Shippo API. It's free to sign up, free to use the API. Only pay to print a live label, test labels are free.
13
+ You will need to [register for a Shippo account](https://goshippo.com/) to use the Shippo API. It's free to sign up, free to use the API. Only pay to print a live label, test labels are free.
14
14
 
15
15
  ## Installation
16
16
 
@@ -161,6 +161,22 @@ ap @shipment.rates_list.first
161
161
  # ⤷ Shippo::Rate
162
162
  ```
163
163
 
164
+ #### List Endpoints
165
+
166
+ You can retrieve a list of objects for many endpoints (e.g. Transactions, Shipments). The API will return a paginated list of objects, usually sorted by creation date. Retrieving a list of your last Transactions can be done as follows, for instance:
167
+
168
+ ```ruby
169
+ @transactions = Shippo::Transaction.all()
170
+ @transactions
171
+ # =>
172
+ # {
173
+ # "count" => 3055,
174
+ # "next" => "https://api.goshippo.com/v1/transactions/?page=2",
175
+ # "previous" => nil,
176
+ # "results" => [ ... list of Transaction objects ... ]
177
+ # }
178
+ ```
179
+
164
180
  #### Resource ID and Other Object Fields
165
181
 
166
182
  Shippo API returns several generalized fields for each valid resource, that being with 'object_' – for example, `object_id`, `object_owner`, etc. In this library we move these fields out of the main model, and into an instance of `Shippo::API::ApiObject`. However the fields can still be accessed on the main model via generated accessors.
@@ -229,7 +245,7 @@ NOTE: this environment variable is only used by the included `bin/example` scrip
229
245
 
230
246
  Version 2 and up of this library works with Ruby 2.2 and later, and is not backwards compatible. __Version 1.0.4__ of this library is the last version supporting ruby 1.8 and 1.9.
231
247
 
232
- __Warning:__ Version 2 brings potential backwards incompatibility issues. Please be prepared to update your usages (if necessary) when you migrate.
248
+ __Warning:__ Version 2 brings potential backwards incompatibility issues. Please be prepared to update your usages (if necessary) when you migrate.
233
249
 
234
250
  ### If you are still using Ruby 1.8 or 1.9
235
251
 
@@ -46,4 +46,4 @@ module Shippo
46
46
  end
47
47
  end
48
48
 
49
- Shippo.dir('shippo/api/category')
49
+ Dir[File.dirname(__FILE__) + '/category/*.rb'].each {|file| require file }
@@ -5,4 +5,4 @@ module Shippo
5
5
  end
6
6
  end
7
7
 
8
- Shippo.dir('shippo/api/operations')
8
+ Dir[File.dirname(__FILE__) + '/operations/*.rb'].each {|file| require file }
@@ -58,9 +58,12 @@ module Shippo
58
58
  rescue ::RestClient::Unauthorized => e
59
59
  raise Shippo::Exceptions::AuthenticationError.new(e.message)
60
60
 
61
- rescue ::JSON::JSONError, ::JSON::ParserError, ::RestClient::BadRequest
61
+ rescue ::JSON::JSONError, ::JSON::ParserError
62
62
  raise Shippo::Exceptions::APIServerError.new('Unable to read data received back from the server', self)
63
63
 
64
+ rescue ::RestClient::BadRequest => e
65
+ raise Shippo::Exceptions::InvalidInputError.new(e.inspect)
66
+
64
67
  rescue ::RestClient::Exception => e
65
68
  raise Shippo::Exceptions::ConnectionError.new(connection_error_message(url, e))
66
69
 
@@ -1,5 +1,5 @@
1
1
  module Shippo
2
2
  module API
3
- VERSION = '2.0.2'
3
+ VERSION = '2.0.3'
4
4
  end
5
5
  end
data/lib/shippo/api.rb CHANGED
@@ -44,9 +44,7 @@ module Shippo
44
44
  end
45
45
  end
46
46
 
47
- Shippo.dir('shippo/api')
48
- Shippo.dir('shippo/api/transformers')
49
- Shippo.dir('shippo/api/extend')
50
- Shippo.dir('shippo/model')
51
-
52
-
47
+ Dir[File.dirname(__FILE__) + '/api/*.rb'].each {|file| require file }
48
+ Dir[File.dirname(__FILE__) + '/api/transformers/*.rb'].each {|file| require file }
49
+ Dir[File.dirname(__FILE__) + '/api/extend/*.rb'].each {|file| require file }
50
+ Dir[File.dirname(__FILE__) + '/model/*.rb'].each {|file| require file }
@@ -12,7 +12,7 @@ class Shippo::Exceptions::Error < StandardError
12
12
  end
13
13
 
14
14
  def to_s
15
- "BOOM! ⇨ #{message}"
15
+ "Error! ⇨ #{message}"
16
16
  end
17
17
  end
18
18
 
@@ -20,3 +20,4 @@ class Shippo::Exceptions::ConnectionError < Shippo::Exceptions::Error; end
20
20
  class Shippo::Exceptions::AuthenticationError < Shippo::Exceptions::Error; end
21
21
  class Shippo::Exceptions::MissingDataError < Shippo::Exceptions::Error; end
22
22
  class Shippo::Exceptions::AbstractClassInitError < Shippo::Exceptions::Error; end
23
+ class Shippo::Exceptions::InvalidInputError < Shippo::Exceptions::Error; end
@@ -4,4 +4,4 @@ module Shippo
4
4
  end
5
5
 
6
6
  require 'shippo/exceptions/error'
7
- Shippo.dir('shippo/exceptions')
7
+ Dir[File.dirname(__FILE__) + '/exceptions/*.rb'].each {|file| require file }
data/lib/shippo.rb CHANGED
@@ -8,11 +8,7 @@
8
8
  # Shippo integration.
9
9
  #
10
10
 
11
- require 'require_dir'
12
-
13
11
  module Shippo
14
- extend ::RequireDir
15
- init_from_source __FILE__
16
12
  end
17
13
 
18
14
  require 'shippo/api'
data/shippo.gemspec CHANGED
@@ -21,10 +21,10 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency 'json', '~> 1.8'
22
22
  spec.add_dependency 'hashie', '~> 3.4'
23
23
  spec.add_dependency 'activesupport', '~> 4'
24
- spec.add_dependency 'require_dir', '~> 0.1'
25
24
  spec.add_dependency 'awesome_print'
26
25
 
27
26
  spec.add_development_dependency 'rake'
27
+ spec.add_development_dependency 'pry'
28
28
  spec.add_development_dependency 'guard'
29
29
  spec.add_development_dependency 'guard-rspec'
30
30
  spec.add_development_dependency 'yard'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shippo
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shippo & Contributors
@@ -9,174 +9,174 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-08-22 00:00:00.000000000 Z
12
+ date: 2016-10-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ~>
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
20
  version: '1.8'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ~>
25
+ - - "~>"
26
26
  - !ruby/object:Gem::Version
27
27
  version: '1.8'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: mime-types
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ~>
32
+ - - "~>"
33
33
  - !ruby/object:Gem::Version
34
34
  version: '2'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ~>
39
+ - - "~>"
40
40
  - !ruby/object:Gem::Version
41
41
  version: '2'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: json
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ~>
46
+ - - "~>"
47
47
  - !ruby/object:Gem::Version
48
48
  version: '1.8'
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - ~>
53
+ - - "~>"
54
54
  - !ruby/object:Gem::Version
55
55
  version: '1.8'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: hashie
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - ~>
60
+ - - "~>"
61
61
  - !ruby/object:Gem::Version
62
62
  version: '3.4'
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - ~>
67
+ - - "~>"
68
68
  - !ruby/object:Gem::Version
69
69
  version: '3.4'
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: activesupport
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ~>
74
+ - - "~>"
75
75
  - !ruby/object:Gem::Version
76
76
  version: '4'
77
77
  type: :runtime
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ~>
81
+ - - "~>"
82
82
  - !ruby/object:Gem::Version
83
83
  version: '4'
84
84
  - !ruby/object:Gem::Dependency
85
- name: require_dir
85
+ name: awesome_print
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - ~>
88
+ - - ">="
89
89
  - !ruby/object:Gem::Version
90
- version: '0.1'
90
+ version: '0'
91
91
  type: :runtime
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - ~>
95
+ - - ">="
96
96
  - !ruby/object:Gem::Version
97
- version: '0.1'
97
+ version: '0'
98
98
  - !ruby/object:Gem::Dependency
99
- name: awesome_print
99
+ name: rake
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - '>='
102
+ - - ">="
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
- type: :runtime
105
+ type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - '>='
109
+ - - ">="
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
112
  - !ruby/object:Gem::Dependency
113
- name: rake
113
+ name: pry
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
- - - '>='
116
+ - - ">="
117
117
  - !ruby/object:Gem::Version
118
118
  version: '0'
119
119
  type: :development
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
- - - '>='
123
+ - - ">="
124
124
  - !ruby/object:Gem::Version
125
125
  version: '0'
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: guard
128
128
  requirement: !ruby/object:Gem::Requirement
129
129
  requirements:
130
- - - '>='
130
+ - - ">="
131
131
  - !ruby/object:Gem::Version
132
132
  version: '0'
133
133
  type: :development
134
134
  prerelease: false
135
135
  version_requirements: !ruby/object:Gem::Requirement
136
136
  requirements:
137
- - - '>='
137
+ - - ">="
138
138
  - !ruby/object:Gem::Version
139
139
  version: '0'
140
140
  - !ruby/object:Gem::Dependency
141
141
  name: guard-rspec
142
142
  requirement: !ruby/object:Gem::Requirement
143
143
  requirements:
144
- - - '>='
144
+ - - ">="
145
145
  - !ruby/object:Gem::Version
146
146
  version: '0'
147
147
  type: :development
148
148
  prerelease: false
149
149
  version_requirements: !ruby/object:Gem::Requirement
150
150
  requirements:
151
- - - '>='
151
+ - - ">="
152
152
  - !ruby/object:Gem::Version
153
153
  version: '0'
154
154
  - !ruby/object:Gem::Dependency
155
155
  name: yard
156
156
  requirement: !ruby/object:Gem::Requirement
157
157
  requirements:
158
- - - '>='
158
+ - - ">="
159
159
  - !ruby/object:Gem::Version
160
160
  version: '0'
161
161
  type: :development
162
162
  prerelease: false
163
163
  version_requirements: !ruby/object:Gem::Requirement
164
164
  requirements:
165
- - - '>='
165
+ - - ">="
166
166
  - !ruby/object:Gem::Version
167
167
  version: '0'
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: rspec
170
170
  requirement: !ruby/object:Gem::Requirement
171
171
  requirements:
172
- - - ~>
172
+ - - "~>"
173
173
  - !ruby/object:Gem::Version
174
174
  version: '3.4'
175
175
  type: :development
176
176
  prerelease: false
177
177
  version_requirements: !ruby/object:Gem::Requirement
178
178
  requirements:
179
- - - ~>
179
+ - - "~>"
180
180
  - !ruby/object:Gem::Version
181
181
  version: '3.4'
182
182
  description: A gem for connecting with over 20 shipping carriers and consolidators
@@ -191,12 +191,12 @@ executables: []
191
191
  extensions: []
192
192
  extra_rdoc_files: []
193
193
  files:
194
- - .atom-build.json
195
- - .codeclimate.yml
196
- - .gitignore
197
- - .rspec
198
- - .rubocop.yml
199
- - .travis.yml
194
+ - ".atom-build.json"
195
+ - ".codeclimate.yml"
196
+ - ".gitignore"
197
+ - ".rspec"
198
+ - ".rubocop.yml"
199
+ - ".travis.yml"
200
200
  - CHANGELOG.md
201
201
  - Gemfile
202
202
  - Guardfile
@@ -251,17 +251,17 @@ require_paths:
251
251
  - lib
252
252
  required_ruby_version: !ruby/object:Gem::Requirement
253
253
  requirements:
254
- - - '>='
254
+ - - ">="
255
255
  - !ruby/object:Gem::Version
256
256
  version: 2.0.0
257
257
  required_rubygems_version: !ruby/object:Gem::Requirement
258
258
  requirements:
259
- - - '>='
259
+ - - ">="
260
260
  - !ruby/object:Gem::Version
261
261
  version: '0'
262
262
  requirements: []
263
263
  rubyforge_project:
264
- rubygems_version: 2.0.14.1
264
+ rubygems_version: 2.5.1
265
265
  signing_key:
266
266
  specification_version: 4
267
267
  summary: API client for Shippo® APIs. Shippo helps you connect with multiple carriers