shipcloud 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
[![Code Climate](https://codeclimate.com/github/
|
1
|
+
[![Code Climate](https://codeclimate.com/github/shipcloud/shipcloud-ruby.png)](https://codeclimate.com/github/shipcloud/shipcloud-ruby) [![Build Status](https://travis-ci.org/shipcloud/shipcloud-ruby.png?branch=master)](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
|