shipcloud 0.4.0 → 0.5.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/.travis.yml +2 -2
- data/README.md +3 -3
- data/lib/shipcloud.rb +2 -0
- data/lib/shipcloud/carrier.rb +8 -0
- data/lib/shipcloud/operations/all.rb +18 -0
- data/lib/shipcloud/request/validator.rb +1 -1
- data/lib/shipcloud/version.rb +1 -1
- data/shipcloud.gemspec +8 -8
- data/spec/shipcloud/carrier_spec.rb +55 -0
- data/spec/shipcloud/request/validator_spec.rb +12 -1
- data/spec/spec_helper.rb +7 -1
- metadata +35 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7fe7d70855f9f9d09443128ae9f2441aa1ae5d8
|
4
|
+
data.tar.gz: d10ee0cab165095c93b05f0fe89bf3013a9c0deb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b43899286a6b7f6ec792b035c68c8544aefea872336d41e737c6b0e012ade065d580e526be7dc9412c9cfd71d6fa7778bca4bb7aa5c415e120e4d59744f3936
|
7
|
+
data.tar.gz: ffe6d71d40372d558ccf12590fb3b2699cd5cae7800d167a277c64227f9b797f5c6b7a8993b98a66a9c1d69fa636607f4eba359e43d1099afa902e7a90093c83
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
[](https://codeclimate.com/github/shipcloud/shipcloud-ruby) [](https://travis-ci.org/shipcloud/shipcloud-ruby)
|
2
2
|
# shipcloud
|
3
3
|
|
4
4
|
A Ruby wrapper for the shipcloud API
|
@@ -41,8 +41,8 @@ To create a new Shipment on the shipclod platform, you need to provide the name
|
|
41
41
|
For details, see *[shipcloud API documentation on Shipments](http://docs.shipcloud.apiary.io/#shipmentresources)*
|
42
42
|
```
|
43
43
|
Shipcloud::Shipment.create(
|
44
|
-
carrier: 'ups',
|
45
|
-
from: from-address-params,
|
44
|
+
carrier: 'ups',
|
45
|
+
from: from-address-params,
|
46
46
|
to: to-address-params,
|
47
47
|
package: package-params,
|
48
48
|
create_shipping_label: true
|
data/lib/shipcloud.rb
CHANGED
@@ -16,10 +16,12 @@ module Shipcloud
|
|
16
16
|
|
17
17
|
autoload :Base, "shipcloud/base"
|
18
18
|
autoload :Shipment, "shipcloud/shipment"
|
19
|
+
autoload :Carrier, "shipcloud/carrier"
|
19
20
|
|
20
21
|
module Operations
|
21
22
|
autoload :Create, "shipcloud/operations/create"
|
22
23
|
autoload :Find, "shipcloud/operations/find"
|
24
|
+
autoload :All, "shipcloud/operations/all"
|
23
25
|
autoload :Delete, "shipcloud/operations/delete"
|
24
26
|
autoload :Update, "shipcloud/operations/update"
|
25
27
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Shipcloud
|
2
|
+
module Operations
|
3
|
+
module All
|
4
|
+
module ClassMethods
|
5
|
+
# Loads all Objects of the resource
|
6
|
+
def all
|
7
|
+
response = Shipcloud.request(:get, "#{self.name.split("::").last.downcase}s", {})
|
8
|
+
response.map {|hash| self.new(hash) }
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.included(base)
|
13
|
+
base.extend(ClassMethods)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
data/lib/shipcloud/version.rb
CHANGED
data/shipcloud.gemspec
CHANGED
@@ -7,10 +7,10 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.name = "shipcloud"
|
8
8
|
spec.version = Shipcloud::VERSION
|
9
9
|
spec.authors = ["sthollmann"]
|
10
|
-
spec.email = ["stefan@
|
10
|
+
spec.email = ["stefan@shipcloud.io"]
|
11
11
|
spec.description = %q{A wrapper for the shipcloud API}
|
12
12
|
spec.summary = %q{A wrapper for the shipcloud API}
|
13
|
-
spec.homepage = "https://github.com/
|
13
|
+
spec.homepage = "https://github.com/shipcloud/shipcloud-ruby"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.
|
22
|
-
spec.add_development_dependency 'bundler', '
|
23
|
-
spec.add_development_dependency 'rake', '~> 10.3
|
24
|
-
spec.add_development_dependency 'rspec', '~> 2.99
|
25
|
-
spec.add_development_dependency 'webmock', '~> 1.18
|
26
|
-
spec.add_development_dependency 'pry', '~> 0.10
|
21
|
+
spec.add_runtime_dependency 'json', '~> 1.8', '>= 1.8.0'
|
22
|
+
spec.add_development_dependency 'bundler', '>= 1.3.0', '< 2.0'
|
23
|
+
spec.add_development_dependency 'rake', '~> 10.3'
|
24
|
+
spec.add_development_dependency 'rspec', '~> 2.99'
|
25
|
+
spec.add_development_dependency 'webmock', '~> 1.18'
|
26
|
+
spec.add_development_dependency 'pry', '~> 0.10'
|
27
27
|
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Shipcloud::Carrier do
|
4
|
+
describe '#initialize' do
|
5
|
+
it 'initializes all attributes correctly' do
|
6
|
+
valid_attributes = { name: 'bogus', display_name: 'Bogus Carrier' }
|
7
|
+
carrier = Shipcloud::Carrier.new(valid_attributes)
|
8
|
+
|
9
|
+
expect(carrier.name).to eq 'bogus'
|
10
|
+
expect(carrier.display_name).to eq 'Bogus Carrier'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe '.all' do
|
15
|
+
it 'makes a new Get request using the correct API endpoint' do
|
16
|
+
expect(Shipcloud).to receive(:request).
|
17
|
+
with(:get, 'carriers', {}).and_return([])
|
18
|
+
|
19
|
+
Shipcloud::Carrier.all
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'returns a list of Carrier objects' do
|
23
|
+
stub_carriers_request
|
24
|
+
|
25
|
+
carriers = Shipcloud::Carrier.all
|
26
|
+
|
27
|
+
carriers.each do |carrier|
|
28
|
+
expect(carrier).to be_a Shipcloud::Carrier
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'initializes the Carrier objects correctly' do
|
33
|
+
stub_carriers_request
|
34
|
+
allow(Shipcloud::Carrier).to receive(:new)
|
35
|
+
|
36
|
+
carriers = Shipcloud::Carrier.all
|
37
|
+
|
38
|
+
expect(Shipcloud::Carrier).to have_received(:new).
|
39
|
+
with({ 'name' => 'carrier_1', 'display_name' => 'Carrier 1' })
|
40
|
+
expect(Shipcloud::Carrier).to have_received(:new).
|
41
|
+
with({ 'name' => 'carrier_2', 'display_name' => 'Carrier 2' })
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def stub_carriers_request
|
46
|
+
allow(Shipcloud).to receive(:request).
|
47
|
+
with(:get, 'carriers', {}).
|
48
|
+
and_return(
|
49
|
+
[
|
50
|
+
{ 'name' => 'carrier_1', 'display_name' => 'Carrier 1' },
|
51
|
+
{ 'name' => 'carrier_2', 'display_name' => 'Carrier 2' },
|
52
|
+
]
|
53
|
+
)
|
54
|
+
end
|
55
|
+
end
|
@@ -9,5 +9,16 @@ describe Shipcloud::Request::Validator do
|
|
9
9
|
|
10
10
|
validator.validated_data_for(response).should eq "response" => "ok"
|
11
11
|
end
|
12
|
+
|
13
|
+
it 'raises an APIError if the response contains errors' do
|
14
|
+
info = Shipcloud::Request::Info.new(:get, 'random', {})
|
15
|
+
validator = Shipcloud::Request::Validator.new info
|
16
|
+
response = OpenStruct.new(body: '{"errors":["some error"]}', code: 200)
|
17
|
+
|
18
|
+
expect { validator.validated_data_for(response) }.to raise_error(
|
19
|
+
Shipcloud::APIError,
|
20
|
+
['some error'].to_s
|
21
|
+
)
|
22
|
+
end
|
12
23
|
end
|
13
|
-
end
|
24
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -3,4 +3,10 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
|
3
3
|
require 'shipcloud'
|
4
4
|
require 'rspec'
|
5
5
|
require "webmock/rspec"
|
6
|
-
require "pry"
|
6
|
+
require "pry"
|
7
|
+
|
8
|
+
RSpec.configure do |config|
|
9
|
+
config.after(:each) do
|
10
|
+
Shipcloud.api_key = nil
|
11
|
+
end
|
12
|
+
end
|
metadata
CHANGED
@@ -1,102 +1,114 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shipcloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sthollmann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.8'
|
17
20
|
- - ">="
|
18
21
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
22
|
+
version: 1.8.0
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.8'
|
24
30
|
- - ">="
|
25
31
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
32
|
+
version: 1.8.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: bundler
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
|
-
- - "
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 1.3.0
|
40
|
+
- - "<"
|
32
41
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
42
|
+
version: '2.0'
|
34
43
|
type: :development
|
35
44
|
prerelease: false
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
37
46
|
requirements:
|
38
|
-
- - "
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 1.3.0
|
50
|
+
- - "<"
|
39
51
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
52
|
+
version: '2.0'
|
41
53
|
- !ruby/object:Gem::Dependency
|
42
54
|
name: rake
|
43
55
|
requirement: !ruby/object:Gem::Requirement
|
44
56
|
requirements:
|
45
57
|
- - "~>"
|
46
58
|
- !ruby/object:Gem::Version
|
47
|
-
version: 10.3
|
59
|
+
version: '10.3'
|
48
60
|
type: :development
|
49
61
|
prerelease: false
|
50
62
|
version_requirements: !ruby/object:Gem::Requirement
|
51
63
|
requirements:
|
52
64
|
- - "~>"
|
53
65
|
- !ruby/object:Gem::Version
|
54
|
-
version: 10.3
|
66
|
+
version: '10.3'
|
55
67
|
- !ruby/object:Gem::Dependency
|
56
68
|
name: rspec
|
57
69
|
requirement: !ruby/object:Gem::Requirement
|
58
70
|
requirements:
|
59
71
|
- - "~>"
|
60
72
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.99
|
73
|
+
version: '2.99'
|
62
74
|
type: :development
|
63
75
|
prerelease: false
|
64
76
|
version_requirements: !ruby/object:Gem::Requirement
|
65
77
|
requirements:
|
66
78
|
- - "~>"
|
67
79
|
- !ruby/object:Gem::Version
|
68
|
-
version: 2.99
|
80
|
+
version: '2.99'
|
69
81
|
- !ruby/object:Gem::Dependency
|
70
82
|
name: webmock
|
71
83
|
requirement: !ruby/object:Gem::Requirement
|
72
84
|
requirements:
|
73
85
|
- - "~>"
|
74
86
|
- !ruby/object:Gem::Version
|
75
|
-
version: 1.18
|
87
|
+
version: '1.18'
|
76
88
|
type: :development
|
77
89
|
prerelease: false
|
78
90
|
version_requirements: !ruby/object:Gem::Requirement
|
79
91
|
requirements:
|
80
92
|
- - "~>"
|
81
93
|
- !ruby/object:Gem::Version
|
82
|
-
version: 1.18
|
94
|
+
version: '1.18'
|
83
95
|
- !ruby/object:Gem::Dependency
|
84
96
|
name: pry
|
85
97
|
requirement: !ruby/object:Gem::Requirement
|
86
98
|
requirements:
|
87
99
|
- - "~>"
|
88
100
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.10
|
101
|
+
version: '0.10'
|
90
102
|
type: :development
|
91
103
|
prerelease: false
|
92
104
|
version_requirements: !ruby/object:Gem::Requirement
|
93
105
|
requirements:
|
94
106
|
- - "~>"
|
95
107
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.10
|
108
|
+
version: '0.10'
|
97
109
|
description: A wrapper for the shipcloud API
|
98
110
|
email:
|
99
|
-
- stefan@
|
111
|
+
- stefan@shipcloud.io
|
100
112
|
executables: []
|
101
113
|
extensions: []
|
102
114
|
extra_rdoc_files: []
|
@@ -110,6 +122,8 @@ files:
|
|
110
122
|
- Rakefile
|
111
123
|
- lib/shipcloud.rb
|
112
124
|
- lib/shipcloud/base.rb
|
125
|
+
- lib/shipcloud/carrier.rb
|
126
|
+
- lib/shipcloud/operations/all.rb
|
113
127
|
- lib/shipcloud/operations/create.rb
|
114
128
|
- lib/shipcloud/operations/delete.rb
|
115
129
|
- lib/shipcloud/operations/find.rb
|
@@ -121,13 +135,14 @@ files:
|
|
121
135
|
- lib/shipcloud/shipment.rb
|
122
136
|
- lib/shipcloud/version.rb
|
123
137
|
- shipcloud.gemspec
|
138
|
+
- spec/shipcloud/carrier_spec.rb
|
124
139
|
- spec/shipcloud/request/base_spec.rb
|
125
140
|
- spec/shipcloud/request/connection_spec.rb
|
126
141
|
- spec/shipcloud/request/validator_spec.rb
|
127
142
|
- spec/shipcloud/shipment_spec.rb
|
128
143
|
- spec/shipcloud_spec.rb
|
129
144
|
- spec/spec_helper.rb
|
130
|
-
homepage: https://github.com/
|
145
|
+
homepage: https://github.com/shipcloud/shipcloud-ruby
|
131
146
|
licenses:
|
132
147
|
- MIT
|
133
148
|
metadata: {}
|
@@ -147,11 +162,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
147
162
|
version: '0'
|
148
163
|
requirements: []
|
149
164
|
rubyforge_project:
|
150
|
-
rubygems_version: 2.
|
165
|
+
rubygems_version: 2.4.6
|
151
166
|
signing_key:
|
152
167
|
specification_version: 4
|
153
168
|
summary: A wrapper for the shipcloud API
|
154
169
|
test_files:
|
170
|
+
- spec/shipcloud/carrier_spec.rb
|
155
171
|
- spec/shipcloud/request/base_spec.rb
|
156
172
|
- spec/shipcloud/request/connection_spec.rb
|
157
173
|
- spec/shipcloud/request/validator_spec.rb
|