shippo 1.0.4 → 2.0.0
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 +4 -4
- data/.atom-build.json +22 -0
- data/.codeclimate.yml +30 -0
- data/.gitignore +22 -0
- data/.rspec +2 -0
- data/.rubocop.yml +1156 -0
- data/.travis.yml +16 -0
- data/CHANGELOG.md +50 -0
- data/Gemfile +5 -0
- data/Guardfile +39 -0
- data/README.md +288 -0
- data/Rakefile +24 -0
- data/bin/example +114 -0
- data/lib/shippo.rb +23 -97
- data/lib/shippo/api.rb +52 -0
- data/lib/shippo/api/api_object.rb +133 -0
- data/lib/shippo/api/category.rb +49 -0
- data/lib/shippo/api/category/base.rb +144 -0
- data/lib/shippo/api/category/purpose.rb +13 -0
- data/lib/shippo/api/category/source.rb +16 -0
- data/lib/shippo/api/category/state.rb +13 -0
- data/lib/shippo/api/category/status.rb +17 -0
- data/lib/shippo/api/extend/operation.rb +21 -0
- data/lib/shippo/api/extend/transformers.rb +12 -0
- data/lib/shippo/api/extend/url.rb +26 -0
- data/lib/shippo/api/operations.rb +8 -0
- data/lib/shippo/api/operations/create.rb +33 -0
- data/lib/shippo/api/operations/list.rb +22 -0
- data/lib/shippo/api/operations/rates.rb +16 -0
- data/lib/shippo/api/operations/update.rb +12 -0
- data/lib/shippo/api/operations/validate.rb +12 -0
- data/lib/shippo/api/request.rb +159 -0
- data/lib/shippo/api/resource.rb +104 -0
- data/lib/shippo/api/transformers/list.rb +73 -0
- data/lib/shippo/api/version.rb +5 -0
- data/lib/shippo/exceptions.rb +7 -0
- data/lib/shippo/exceptions/api_error.rb +20 -0
- data/lib/shippo/exceptions/error.rb +22 -0
- data/lib/shippo/model/address.rb +5 -0
- data/lib/shippo/model/carrieraccount.rb +5 -0
- data/lib/shippo/model/customs_declaration.rb +6 -0
- data/lib/shippo/model/customs_item.rb +5 -0
- data/lib/shippo/model/manifest.rb +5 -0
- data/lib/shippo/model/parcel.rb +5 -0
- data/lib/shippo/model/rate.rb +5 -0
- data/lib/shippo/model/refund.rb +5 -0
- data/lib/shippo/model/shipment.rb +5 -0
- data/lib/shippo/model/transaction.rb +5 -0
- data/lib/shippo/tasks/shippo.rb +22 -0
- data/shippo.gemspec +34 -0
- metadata +226 -40
- data/example.rb +0 -71
- data/lib/shippo/address.rb +0 -10
- data/lib/shippo/api_object.rb +0 -89
- data/lib/shippo/carrieraccount.rb +0 -8
- data/lib/shippo/container_object.rb +0 -28
- data/lib/shippo/create.rb +0 -18
- data/lib/shippo/customs_declaration.rb +0 -7
- data/lib/shippo/customs_item.rb +0 -7
- data/lib/shippo/error.rb +0 -18
- data/lib/shippo/list.rb +0 -23
- data/lib/shippo/manifest.rb +0 -6
- data/lib/shippo/parcel.rb +0 -6
- data/lib/shippo/rate.rb +0 -5
- data/lib/shippo/refund.rb +0 -6
- data/lib/shippo/resource.rb +0 -29
- data/lib/shippo/shipment.rb +0 -14
- data/lib/shippo/transaction.rb +0 -6
- data/lib/shippo/update.rb +0 -15
- data/test/test.rb +0 -26
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'active_support/inflector'
|
2
|
+
module Shippo
|
3
|
+
module API
|
4
|
+
module Transformers
|
5
|
+
# List Transformer: if it finds a key named like 'rates_list' it converts it
|
6
|
+
# to another member 'rates' containing equivalent list of object instances of
|
7
|
+
# the corresponding type, in the example above – Shippo::Rate.
|
8
|
+
class List
|
9
|
+
attr_accessor :h
|
10
|
+
|
11
|
+
# Matchers receive a key as a parameter, and they extract a candidate word to be
|
12
|
+
# tried in Coercing the values of the array to an object. For example, it could be
|
13
|
+
# "shipments" or "rates_list" or "items".
|
14
|
+
#
|
15
|
+
# They are tried in order they are defined.
|
16
|
+
|
17
|
+
MATCHERS = [
|
18
|
+
->(key) {
|
19
|
+
case key.to_sym
|
20
|
+
when :items
|
21
|
+
:customs_items
|
22
|
+
else
|
23
|
+
nil
|
24
|
+
end
|
25
|
+
},
|
26
|
+
|
27
|
+
->(key) {
|
28
|
+
reg = /^([\w_]+)_list$/
|
29
|
+
reg.match(key.to_s) ? reg.match(key.to_s)[1] : nil
|
30
|
+
},
|
31
|
+
|
32
|
+
->(key) {
|
33
|
+
reg = /^([\w_]+s)$/
|
34
|
+
reg.match(key.to_s) ? reg.match(key.to_s)[1] : nil
|
35
|
+
}
|
36
|
+
]
|
37
|
+
|
38
|
+
def initialize(hash)
|
39
|
+
self.h = hash
|
40
|
+
end
|
41
|
+
|
42
|
+
def transform
|
43
|
+
h.keys.each { |k| h[k].is_a?(Array) && !h[k].empty? }.each do |list_key|
|
44
|
+
type, *values = transform_list(list_key, h[list_key])
|
45
|
+
h[list_key] = values if type
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def detect_type_class(model_name)
|
52
|
+
type = model_name.to_s.singularize.camelize
|
53
|
+
"Shippo::#{type}".constantize rescue nil
|
54
|
+
end
|
55
|
+
|
56
|
+
def detect_type_name(list_key)
|
57
|
+
results = MATCHERS.map { |m| m.call(list_key) }.compact
|
58
|
+
results.is_a?(Array) && results.size > 0 ? results.first : nil
|
59
|
+
end
|
60
|
+
|
61
|
+
def transform_list(list_key, array)
|
62
|
+
if (type_name = detect_type_name(list_key)) &&
|
63
|
+
(type_class = detect_type_class(type_name))
|
64
|
+
type_array = array.map { |item| type_class.from(item) }
|
65
|
+
return type_name, *type_array
|
66
|
+
else
|
67
|
+
nil
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class Shippo::Exceptions::APIError < ::Shippo::Exceptions::Error
|
2
|
+
attr_accessor :message, :req
|
3
|
+
def initialize(message = nil, req = nil)
|
4
|
+
super(message)
|
5
|
+
self.req = req
|
6
|
+
end
|
7
|
+
|
8
|
+
def to_s
|
9
|
+
"#{self.class.name} ⇨ #{req.url}#{response} ⇨ #{message}"
|
10
|
+
end
|
11
|
+
|
12
|
+
def response
|
13
|
+
req.response && req.response.http_code ? "[ ⇨ HTTP #{req.response.http_code} ]" : ''
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class Shippo::Exceptions::UnsuccessfulResponseError < Shippo::Exceptions::APIError; end
|
18
|
+
class Shippo::Exceptions::APIServerError < Shippo::Exceptions::APIError; end
|
19
|
+
class Shippo::Exceptions::InvalidCategoryValueError < Shippo::Exceptions::APIError; end
|
20
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class Shippo::Exceptions::Error < StandardError
|
2
|
+
attr_accessor :message
|
3
|
+
|
4
|
+
def initialize(thing = nil)
|
5
|
+
if thing.is_a?(String)
|
6
|
+
self.message = thing
|
7
|
+
elsif thing.respond_to?(:message)
|
8
|
+
self.message = thing.message
|
9
|
+
else
|
10
|
+
super(thing)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def to_s
|
15
|
+
"BOOM! ⇨ #{message}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class Shippo::Exceptions::ConnectionError < Shippo::Exceptions::Error; end
|
20
|
+
class Shippo::Exceptions::AuthenticationError < Shippo::Exceptions::Error; end
|
21
|
+
class Shippo::Exceptions::MissingDataError < Shippo::Exceptions::Error; end
|
22
|
+
class Shippo::Exceptions::AbstractClassInitError < Shippo::Exceptions::Error; end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'yard'
|
2
|
+
require 'yard/rake/yardoc_task'
|
3
|
+
require 'rake/application'
|
4
|
+
require 'fileutils'
|
5
|
+
# Main namespace for Shippo specific Rake tasks
|
6
|
+
|
7
|
+
module Shippo
|
8
|
+
DOC_FOLDER = 'doc'
|
9
|
+
end
|
10
|
+
|
11
|
+
YARD::Rake::YardocTask.new do |t|
|
12
|
+
t.files = %w(lib/**/*.rb - README.md CHANGELOG.md)
|
13
|
+
end
|
14
|
+
|
15
|
+
namespace :doc do
|
16
|
+
desc 'Generate API documentation and preview in browser'
|
17
|
+
task :read do
|
18
|
+
FileUtils.rm_rf([::Shippo::DOC_FOLDER])
|
19
|
+
Rake.application.invoke_task('yard')
|
20
|
+
Kernel.system("open #{::Shippo::DOC_FOLDER}/index.html")
|
21
|
+
end
|
22
|
+
end
|
data/shippo.gemspec
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'shippo/api/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'shippo'
|
8
|
+
spec.version = Shippo::API::VERSION
|
9
|
+
spec.required_ruby_version = '>= 2.0.0'
|
10
|
+
spec.summary = 'API client for Shippo® APIs. Shippo helps you connect with multiple carriers (FedEx, UPS, USPS and many others) via a unified modern API'
|
11
|
+
spec.description = 'A gem for connecting with over 20 shipping carriers and consolidators via a single integration using Shippo API. Support for shipping rates, buying and printing labels, tracking as well as some carrier specific functionality such as signature required, adult signature confirmation, certified mail, delivery confirmation and many others.'
|
12
|
+
spec.authors = ['Shippo & Contributors', 'Konstantin Gredeskoul']
|
13
|
+
spec.email = %w(support@goshippo.com kigster@gmail.com)
|
14
|
+
spec.files = `git ls-files`.split($\).reject{ |f| f.match(%r{^(doc|spec)/}) }
|
15
|
+
spec.homepage = 'http://github.com/goshippo/shippo-ruby-client'
|
16
|
+
spec.license = 'MIT'
|
17
|
+
spec.metadata = { 'shippo_documentation' => 'https://goshippo.com/docs/' }
|
18
|
+
|
19
|
+
spec.add_dependency 'rest-client', '~> 1.8'
|
20
|
+
spec.add_dependency 'mime-types', '~> 2'
|
21
|
+
spec.add_dependency 'json', '~> 1.8'
|
22
|
+
spec.add_dependency 'hashie', '~> 3.4'
|
23
|
+
spec.add_dependency 'activesupport', '~> 4'
|
24
|
+
spec.add_dependency 'colored2'
|
25
|
+
spec.add_dependency 'require_dir'
|
26
|
+
|
27
|
+
spec.add_development_dependency 'bundler'
|
28
|
+
spec.add_development_dependency 'rake'
|
29
|
+
spec.add_development_dependency 'guard'
|
30
|
+
spec.add_development_dependency 'guard-rspec'
|
31
|
+
spec.add_development_dependency 'yard'
|
32
|
+
spec.add_development_dependency 'awesome_print'
|
33
|
+
spec.add_development_dependency 'rspec', '~> 3.4'
|
34
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shippo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shippo & Contributors
|
8
|
+
- Konstantin Gredeskoul
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2016-07-27 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: rest-client
|
@@ -16,78 +17,262 @@ dependencies:
|
|
16
17
|
requirements:
|
17
18
|
- - "~>"
|
18
19
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
20
|
+
version: '1.8'
|
20
21
|
type: :runtime
|
21
22
|
prerelease: false
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
23
24
|
requirements:
|
24
25
|
- - "~>"
|
25
26
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
27
|
+
version: '1.8'
|
27
28
|
- !ruby/object:Gem::Dependency
|
28
29
|
name: mime-types
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '2'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '2'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: json
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '1.8'
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '1.8'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: hashie
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '3.4'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '3.4'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: activesupport
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '4'
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '4'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: colored2
|
29
86
|
requirement: !ruby/object:Gem::Requirement
|
30
87
|
requirements:
|
31
88
|
- - ">="
|
32
89
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
34
|
-
|
90
|
+
version: '0'
|
91
|
+
type: :runtime
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: require_dir
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
35
103
|
- !ruby/object:Gem::Version
|
36
|
-
version: '
|
104
|
+
version: '0'
|
37
105
|
type: :runtime
|
38
106
|
prerelease: false
|
39
107
|
version_requirements: !ruby/object:Gem::Requirement
|
40
108
|
requirements:
|
41
109
|
- - ">="
|
42
110
|
- !ruby/object:Gem::Version
|
43
|
-
version: '
|
44
|
-
|
111
|
+
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: bundler
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
45
117
|
- !ruby/object:Gem::Version
|
46
|
-
version: '
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
47
126
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
127
|
+
name: rake
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: guard
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '0'
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: guard-rspec
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
161
|
+
type: :development
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ">="
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: yard
|
170
|
+
requirement: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - ">="
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
175
|
+
type: :development
|
176
|
+
prerelease: false
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - ">="
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
182
|
+
- !ruby/object:Gem::Dependency
|
183
|
+
name: awesome_print
|
184
|
+
requirement: !ruby/object:Gem::Requirement
|
185
|
+
requirements:
|
186
|
+
- - ">="
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: '0'
|
189
|
+
type: :development
|
190
|
+
prerelease: false
|
191
|
+
version_requirements: !ruby/object:Gem::Requirement
|
192
|
+
requirements:
|
193
|
+
- - ">="
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
version: '0'
|
196
|
+
- !ruby/object:Gem::Dependency
|
197
|
+
name: rspec
|
49
198
|
requirement: !ruby/object:Gem::Requirement
|
50
199
|
requirements:
|
51
200
|
- - "~>"
|
52
201
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
54
|
-
type: :
|
202
|
+
version: '3.4'
|
203
|
+
type: :development
|
55
204
|
prerelease: false
|
56
205
|
version_requirements: !ruby/object:Gem::Requirement
|
57
206
|
requirements:
|
58
207
|
- - "~>"
|
59
208
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
61
|
-
description:
|
62
|
-
|
209
|
+
version: '3.4'
|
210
|
+
description: A gem for connecting with over 20 shipping carriers and consolidators
|
211
|
+
via a single integration using Shippo API. Support for shipping rates, buying and
|
212
|
+
printing labels, tracking as well as some carrier specific functionality such as
|
213
|
+
signature required, adult signature confirmation, certified mail, delivery confirmation
|
214
|
+
and many others.
|
215
|
+
email:
|
216
|
+
- support@goshippo.com
|
217
|
+
- kigster@gmail.com
|
63
218
|
executables: []
|
64
219
|
extensions: []
|
65
220
|
extra_rdoc_files: []
|
66
221
|
files:
|
67
|
-
- "
|
68
|
-
- "
|
69
|
-
- "
|
70
|
-
- "
|
71
|
-
- "
|
72
|
-
- "
|
73
|
-
-
|
74
|
-
-
|
75
|
-
-
|
76
|
-
-
|
77
|
-
-
|
78
|
-
-
|
79
|
-
- "./lib/shippo/refund.rb"
|
80
|
-
- "./lib/shippo/resource.rb"
|
81
|
-
- "./lib/shippo/shipment.rb"
|
82
|
-
- "./lib/shippo/transaction.rb"
|
83
|
-
- "./lib/shippo/update.rb"
|
84
|
-
- example.rb
|
222
|
+
- ".atom-build.json"
|
223
|
+
- ".codeclimate.yml"
|
224
|
+
- ".gitignore"
|
225
|
+
- ".rspec"
|
226
|
+
- ".rubocop.yml"
|
227
|
+
- ".travis.yml"
|
228
|
+
- CHANGELOG.md
|
229
|
+
- Gemfile
|
230
|
+
- Guardfile
|
231
|
+
- README.md
|
232
|
+
- Rakefile
|
233
|
+
- bin/example
|
85
234
|
- lib/shippo.rb
|
86
|
-
-
|
87
|
-
|
235
|
+
- lib/shippo/api.rb
|
236
|
+
- lib/shippo/api/api_object.rb
|
237
|
+
- lib/shippo/api/category.rb
|
238
|
+
- lib/shippo/api/category/base.rb
|
239
|
+
- lib/shippo/api/category/purpose.rb
|
240
|
+
- lib/shippo/api/category/source.rb
|
241
|
+
- lib/shippo/api/category/state.rb
|
242
|
+
- lib/shippo/api/category/status.rb
|
243
|
+
- lib/shippo/api/extend/operation.rb
|
244
|
+
- lib/shippo/api/extend/transformers.rb
|
245
|
+
- lib/shippo/api/extend/url.rb
|
246
|
+
- lib/shippo/api/operations.rb
|
247
|
+
- lib/shippo/api/operations/create.rb
|
248
|
+
- lib/shippo/api/operations/list.rb
|
249
|
+
- lib/shippo/api/operations/rates.rb
|
250
|
+
- lib/shippo/api/operations/update.rb
|
251
|
+
- lib/shippo/api/operations/validate.rb
|
252
|
+
- lib/shippo/api/request.rb
|
253
|
+
- lib/shippo/api/resource.rb
|
254
|
+
- lib/shippo/api/transformers/list.rb
|
255
|
+
- lib/shippo/api/version.rb
|
256
|
+
- lib/shippo/exceptions.rb
|
257
|
+
- lib/shippo/exceptions/api_error.rb
|
258
|
+
- lib/shippo/exceptions/error.rb
|
259
|
+
- lib/shippo/model/address.rb
|
260
|
+
- lib/shippo/model/carrieraccount.rb
|
261
|
+
- lib/shippo/model/customs_declaration.rb
|
262
|
+
- lib/shippo/model/customs_item.rb
|
263
|
+
- lib/shippo/model/manifest.rb
|
264
|
+
- lib/shippo/model/parcel.rb
|
265
|
+
- lib/shippo/model/rate.rb
|
266
|
+
- lib/shippo/model/refund.rb
|
267
|
+
- lib/shippo/model/shipment.rb
|
268
|
+
- lib/shippo/model/transaction.rb
|
269
|
+
- lib/shippo/tasks/shippo.rb
|
270
|
+
- shippo.gemspec
|
271
|
+
homepage: http://github.com/goshippo/shippo-ruby-client
|
88
272
|
licenses:
|
89
273
|
- MIT
|
90
|
-
metadata:
|
274
|
+
metadata:
|
275
|
+
shippo_documentation: https://goshippo.com/docs/
|
91
276
|
post_install_message:
|
92
277
|
rdoc_options: []
|
93
278
|
require_paths:
|
@@ -96,7 +281,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
96
281
|
requirements:
|
97
282
|
- - ">="
|
98
283
|
- !ruby/object:Gem::Version
|
99
|
-
version:
|
284
|
+
version: 2.0.0
|
100
285
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
286
|
requirements:
|
102
287
|
- - ">="
|
@@ -104,8 +289,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
104
289
|
version: '0'
|
105
290
|
requirements: []
|
106
291
|
rubyforge_project:
|
107
|
-
rubygems_version: 2.
|
292
|
+
rubygems_version: 2.5.1
|
108
293
|
signing_key:
|
109
294
|
specification_version: 4
|
110
|
-
summary: Shippo
|
295
|
+
summary: API client for Shippo® APIs. Shippo helps you connect with multiple carriers
|
296
|
+
(FedEx, UPS, USPS and many others) via a unified modern API
|
111
297
|
test_files: []
|