springboard-retail 4.0.0 → 4.0.1
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 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +55 -44
- data/README.md +4 -3
- data/spec/springboard/client/body_spec.rb +7 -7
- data/spec/springboard/client/resource_spec.rb +57 -49
- data/spec/springboard/client/response_spec.rb +13 -13
- data/spec/springboard/client/uri_ext_spec.rb +9 -9
- data/spec/springboard/client_spec.rb +51 -51
- data/springboard-retail.gemspec +8 -10
- data/vendor/cache/coderay-1.1.0.gem +0 -0
- data/vendor/cache/coveralls-0.7.11.gem +0 -0
- data/vendor/cache/crack-0.4.2.gem +0 -0
- data/vendor/cache/diff-lcs-1.2.5.gem +0 -0
- data/vendor/cache/docile-1.1.5.gem +0 -0
- data/vendor/cache/hashie-3.4.1.gem +0 -0
- data/vendor/cache/json-1.8.2.gem +0 -0
- data/vendor/cache/method_source-0.8.2.gem +0 -0
- data/vendor/cache/mime-types-2.4.3.gem +0 -0
- data/vendor/cache/multi_json-1.11.0.gem +0 -0
- data/vendor/cache/netrc-0.10.3.gem +0 -0
- data/vendor/cache/pry-0.10.1.gem +0 -0
- data/vendor/cache/rake-10.4.2.gem +0 -0
- data/vendor/cache/rest-client-1.7.3.gem +0 -0
- data/vendor/cache/rspec-3.2.0.gem +0 -0
- data/vendor/cache/rspec-core-3.2.2.gem +0 -0
- data/vendor/cache/rspec-expectations-3.2.0.gem +0 -0
- data/vendor/cache/rspec-mocks-3.2.1.gem +0 -0
- data/vendor/cache/rspec-support-3.2.2.gem +0 -0
- data/vendor/cache/safe_yaml-1.0.4.gem +0 -0
- data/vendor/cache/simplecov-0.9.2.gem +0 -0
- data/vendor/cache/simplecov-html-0.9.0.gem +0 -0
- data/vendor/cache/slop-3.6.0.gem +0 -0
- data/vendor/cache/{term-ansicolor-1.2.2.gem → term-ansicolor-1.3.0.gem} +0 -0
- data/vendor/cache/thor-0.19.1.gem +0 -0
- data/vendor/cache/tins-1.3.5.gem +0 -0
- data/vendor/cache/webmock-1.17.4.gem +0 -0
- metadata +33 -29
- data/vendor/cache/coderay-1.0.7.gem +0 -0
- data/vendor/cache/coveralls-0.6.9.gem +0 -0
- data/vendor/cache/crack-0.3.1.gem +0 -0
- data/vendor/cache/diff-lcs-1.1.3.gem +0 -0
- data/vendor/cache/hashie-2.0.5.gem +0 -0
- data/vendor/cache/json-1.8.1.gem +0 -0
- data/vendor/cache/method_source-0.8.gem +0 -0
- data/vendor/cache/mime-types-1.25.gem +0 -0
- data/vendor/cache/multi_json-1.8.0.gem +0 -0
- data/vendor/cache/pry-0.9.10.gem +0 -0
- data/vendor/cache/rake-0.9.2.2.gem +0 -0
- data/vendor/cache/rest-client-1.6.7.gem +0 -0
- data/vendor/cache/rspec-2.11.0.gem +0 -0
- data/vendor/cache/rspec-core-2.11.1.gem +0 -0
- data/vendor/cache/rspec-expectations-2.11.2.gem +0 -0
- data/vendor/cache/rspec-mocks-2.11.1.gem +0 -0
- data/vendor/cache/simplecov-0.7.1.gem +0 -0
- data/vendor/cache/simplecov-html-0.7.1.gem +0 -0
- data/vendor/cache/slop-3.3.2.gem +0 -0
- data/vendor/cache/thor-0.18.1.gem +0 -0
- data/vendor/cache/tins-0.9.0.gem +0 -0
- data/vendor/cache/webmock-1.8.8.gem +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 749ec3a018626e45895cdf3ce674d69ac06803b2
|
4
|
+
data.tar.gz: 8e779076c490e2d7d331b0488a8b7a28a054b843
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c96e952949e093a9703cce11b9db9e17662eae0f49fecb37775c680d15623760bc5e749f84a16e24bc0abec06e83967bda583ef4cfe341b042e9e4cc4633255
|
7
|
+
data.tar.gz: edff0014f54cae6814448300aa2eb396f984e9140de482b35a09469cb76cb273da5b751258f33b81e1ec8a1750cab283a6b16b57a7d1d8550058a36ad422d635
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,58 +1,69 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
springboard-retail (4.0.
|
5
|
-
addressable (
|
4
|
+
springboard-retail (4.0.1)
|
5
|
+
addressable (~> 2.2.8)
|
6
6
|
hashie
|
7
7
|
json (>= 1.7.4)
|
8
|
-
patron (
|
8
|
+
patron (= 0.4.18)
|
9
9
|
|
10
10
|
GEM
|
11
11
|
remote: https://rubygems.org/
|
12
12
|
specs:
|
13
13
|
addressable (2.2.8)
|
14
|
-
coderay (1.0
|
15
|
-
coveralls (0.
|
16
|
-
multi_json (~> 1.
|
17
|
-
rest-client
|
18
|
-
simplecov (
|
19
|
-
term-ansicolor
|
20
|
-
thor
|
21
|
-
crack (0.
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
14
|
+
coderay (1.1.0)
|
15
|
+
coveralls (0.7.11)
|
16
|
+
multi_json (~> 1.10)
|
17
|
+
rest-client (>= 1.6.8, < 2)
|
18
|
+
simplecov (~> 0.9.1)
|
19
|
+
term-ansicolor (~> 1.3)
|
20
|
+
thor (~> 0.19.1)
|
21
|
+
crack (0.4.2)
|
22
|
+
safe_yaml (~> 1.0.0)
|
23
|
+
diff-lcs (1.2.5)
|
24
|
+
docile (1.1.5)
|
25
|
+
hashie (3.4.1)
|
26
|
+
json (1.8.2)
|
27
|
+
method_source (0.8.2)
|
28
|
+
mime-types (2.4.3)
|
29
|
+
multi_json (1.11.0)
|
30
|
+
netrc (0.10.3)
|
28
31
|
patron (0.4.18)
|
29
|
-
pry (0.
|
30
|
-
coderay (~> 1.0
|
31
|
-
method_source (~> 0.8)
|
32
|
-
slop (~> 3.
|
33
|
-
rake (
|
34
|
-
rest-client (1.
|
35
|
-
mime-types (>= 1.16)
|
36
|
-
|
37
|
-
|
38
|
-
rspec-
|
39
|
-
rspec-
|
40
|
-
|
41
|
-
rspec-
|
42
|
-
|
43
|
-
rspec-
|
44
|
-
|
32
|
+
pry (0.10.1)
|
33
|
+
coderay (~> 1.1.0)
|
34
|
+
method_source (~> 0.8.1)
|
35
|
+
slop (~> 3.4)
|
36
|
+
rake (10.4.2)
|
37
|
+
rest-client (1.7.3)
|
38
|
+
mime-types (>= 1.16, < 3.0)
|
39
|
+
netrc (~> 0.7)
|
40
|
+
rspec (3.2.0)
|
41
|
+
rspec-core (~> 3.2.0)
|
42
|
+
rspec-expectations (~> 3.2.0)
|
43
|
+
rspec-mocks (~> 3.2.0)
|
44
|
+
rspec-core (3.2.2)
|
45
|
+
rspec-support (~> 3.2.0)
|
46
|
+
rspec-expectations (3.2.0)
|
47
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
48
|
+
rspec-support (~> 3.2.0)
|
49
|
+
rspec-mocks (3.2.1)
|
50
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
51
|
+
rspec-support (~> 3.2.0)
|
52
|
+
rspec-support (3.2.2)
|
53
|
+
safe_yaml (1.0.4)
|
54
|
+
simplecov (0.9.2)
|
55
|
+
docile (~> 1.1.0)
|
45
56
|
multi_json (~> 1.0)
|
46
|
-
simplecov-html (~> 0.
|
47
|
-
simplecov-html (0.
|
48
|
-
slop (3.
|
49
|
-
term-ansicolor (1.
|
50
|
-
tins (~> 0
|
51
|
-
thor (0.
|
52
|
-
tins (
|
53
|
-
webmock (1.
|
54
|
-
addressable (
|
55
|
-
crack (>= 0.
|
57
|
+
simplecov-html (~> 0.9.0)
|
58
|
+
simplecov-html (0.9.0)
|
59
|
+
slop (3.6.0)
|
60
|
+
term-ansicolor (1.3.0)
|
61
|
+
tins (~> 1.0)
|
62
|
+
thor (0.19.1)
|
63
|
+
tins (1.3.5)
|
64
|
+
webmock (1.17.4)
|
65
|
+
addressable (>= 2.2.7)
|
66
|
+
crack (>= 0.3.2)
|
56
67
|
|
57
68
|
PLATFORMS
|
58
69
|
ruby
|
@@ -61,6 +72,6 @@ DEPENDENCIES
|
|
61
72
|
coveralls
|
62
73
|
pry
|
63
74
|
rake
|
64
|
-
rspec (~> 2
|
75
|
+
rspec (~> 3.2)
|
65
76
|
springboard-retail!
|
66
77
|
webmock
|
data/README.md
CHANGED
@@ -10,7 +10,7 @@ This is the [Springboard Retail](http://springboardretail.com/) (a point-of-sale
|
|
10
10
|
|
11
11
|
It is a wrapper around the [Patron](http://toland.github.com/patron/) HTTP client library. Supports MRI 1.9+.
|
12
12
|
|
13
|
-
You can find [documentation here](http://rdoc.info/github/
|
13
|
+
You can find [documentation here](http://rdoc.info/github/springboardretail/springboard-client-ruby).
|
14
14
|
|
15
15
|
## Installation
|
16
16
|
|
@@ -20,13 +20,14 @@ Debian/Ubuntu:
|
|
20
20
|
|
21
21
|
```
|
22
22
|
sudo apt-get install build-essential libcurl4-openssl-dev
|
23
|
-
gem install springboard-
|
23
|
+
gem install springboard-retail
|
24
24
|
```
|
25
25
|
|
26
26
|
## Connecting
|
27
27
|
|
28
28
|
```ruby
|
29
|
-
|
29
|
+
require 'springboard-retail'
|
30
|
+
springboard = Springboard::Client.new 'https://example.myspringboard.us/api'
|
30
31
|
springboard.auth :username => 'user', :password => 'secret'
|
31
32
|
```
|
32
33
|
|
@@ -6,26 +6,26 @@ describe Springboard::Client::Body do
|
|
6
6
|
|
7
7
|
describe "[]" do
|
8
8
|
it "should support string keys" do
|
9
|
-
body["key1"].
|
9
|
+
expect(body["key1"]).to eq("val1")
|
10
10
|
end
|
11
11
|
|
12
12
|
it "should support symbol keys" do
|
13
|
-
body[:key1].
|
13
|
+
expect(body[:key1]).to eq("val1")
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
17
|
describe "nested hashes" do
|
18
18
|
it "should support nested indifferent access" do
|
19
|
-
body[:key2][:subkey1].
|
20
|
-
body['key2']['subkey1'].
|
21
|
-
body[:key2]['subkey1'].
|
22
|
-
body['key2'][:subkey1].
|
19
|
+
expect(body[:key2][:subkey1]).to eq("subval1")
|
20
|
+
expect(body['key2']['subkey1']).to eq("subval1")
|
21
|
+
expect(body[:key2]['subkey1']).to eq("subval1")
|
22
|
+
expect(body['key2'][:subkey1]).to eq("subval1")
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
describe "to_hash" do
|
27
27
|
it "should return the original hash" do
|
28
|
-
body.to_hash.
|
28
|
+
expect(body.to_hash).to be === hash
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
@@ -12,28 +12,28 @@ describe Springboard::Client::Resource do
|
|
12
12
|
|
13
13
|
describe "[]" do
|
14
14
|
it "should return a new resource" do
|
15
|
-
resource["subpath"].
|
16
|
-
resource["subpath"].object_id.
|
15
|
+
expect(resource["subpath"]).to be_a Springboard::Client::Resource
|
16
|
+
expect(resource["subpath"].object_id).not_to eq(resource.object_id)
|
17
17
|
end
|
18
18
|
|
19
19
|
it "should return a resource with the given subpath appended to its URI" do
|
20
|
-
resource["subpath"].uri.to_s.
|
20
|
+
expect(resource["subpath"].uri.to_s).to eq("/some/path/subpath")
|
21
21
|
end
|
22
22
|
|
23
23
|
it "should return a resource with the same client instance" do
|
24
|
-
resource["subpath"].client.
|
24
|
+
expect(resource["subpath"].client).to be === resource.client
|
25
25
|
end
|
26
26
|
|
27
27
|
it "should accept a symbol as a path" do
|
28
|
-
resource[:subpath].uri.to_s.
|
28
|
+
expect(resource[:subpath].uri.to_s).to eq("/some/path/subpath")
|
29
29
|
end
|
30
30
|
|
31
31
|
it "should accept a symbol as a path" do
|
32
|
-
resource[:subpath].uri.to_s.
|
32
|
+
expect(resource[:subpath].uri.to_s).to eq("/some/path/subpath")
|
33
33
|
end
|
34
34
|
|
35
35
|
it "should not URI encode the given subpath" do
|
36
|
-
resource["subpath with spaces"].uri.to_s.
|
36
|
+
expect(resource["subpath with spaces"].uri.to_s).to eq("/some/path/subpath with spaces")
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
@@ -41,24 +41,24 @@ describe Springboard::Client::Resource do
|
|
41
41
|
describe method do
|
42
42
|
describe "when called with a hash" do
|
43
43
|
it "should set the query string parameters" do
|
44
|
-
resource.__send__(method, :a => 1, :b => 2).uri.to_s.
|
44
|
+
expect(resource.__send__(method, :a => 1, :b => 2).uri.to_s).to eq("/some/path?a=1&b=2")
|
45
45
|
end
|
46
46
|
|
47
47
|
it "should URL encode the given keys and values" do
|
48
|
-
resource.__send__(method, "i have spaces" => "so do i: duh").uri.to_s.
|
49
|
-
|
48
|
+
expect(resource.__send__(method, "i have spaces" => "so do i: duh").uri.to_s).
|
49
|
+
to eq("/some/path?i%20have%20spaces=so%20do%20i%3A%20duh")
|
50
50
|
end
|
51
51
|
|
52
52
|
it "should add bracket notation for array parameters" do
|
53
|
-
resource.__send__(method, :somearray => [1, 2, 3]).uri.to_s.
|
53
|
+
expect(resource.__send__(method, :somearray => [1, 2, 3]).uri.to_s).to eq("/some/path?somearray[]=1&somearray[]=2&somearray[]=3")
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
57
|
describe "when called without arguments" do
|
58
58
|
it "should return the current query string parameters as a hash" do
|
59
|
-
resource.__send__(method).
|
59
|
+
expect(resource.__send__(method)).to eq({})
|
60
60
|
new_resource = resource.__send__(method, :a => 1, :b => 2)
|
61
|
-
new_resource.__send__(method).
|
61
|
+
expect(new_resource.__send__(method)).to eq({"a"=>"1", "b"=>"2"})
|
62
62
|
end
|
63
63
|
end
|
64
64
|
end
|
@@ -67,41 +67,44 @@ describe Springboard::Client::Resource do
|
|
67
67
|
describe "filter" do
|
68
68
|
describe "when given a hash" do
|
69
69
|
it "should add a _filter query string param" do
|
70
|
-
resource.filter(:a => 1, :b => 2).uri.
|
70
|
+
expect(resource.filter(:a => 1, :b => 2).uri).to eq(
|
71
71
|
'/some/path?_filter={"a":1,"b":2}'.to_uri
|
72
|
+
)
|
72
73
|
end
|
73
74
|
end
|
74
75
|
|
75
76
|
describe "when called multiple times" do
|
76
77
|
it "should append args to _filter param as JSON array" do
|
77
|
-
resource.filter(:a => 1).filter(:b => 2).filter(:c => 3).uri.
|
78
|
+
expect(resource.filter(:a => 1).filter(:b => 2).filter(:c => 3).uri).to eq(
|
78
79
|
'/some/path?_filter=[{"a":1},{"b":2},{"c":3}]'.to_uri
|
80
|
+
)
|
79
81
|
end
|
80
82
|
end
|
81
83
|
|
82
84
|
describe "when given a string" do
|
83
85
|
it "should add a _filter query string param" do
|
84
|
-
resource.filter('{"a":1,"b":2}').uri.
|
86
|
+
expect(resource.filter('{"a":1,"b":2}').uri).to eq(
|
85
87
|
'/some/path?_filter={"a":1,"b":2}'.to_uri
|
88
|
+
)
|
86
89
|
end
|
87
90
|
end
|
88
91
|
end
|
89
92
|
|
90
93
|
describe "sort" do
|
91
94
|
it "should set the sort parameter based on the given values" do
|
92
|
-
resource.sort('f1', 'f2,desc').uri.query.
|
95
|
+
expect(resource.sort('f1', 'f2,desc').uri.query).to eq('sort[]=f1&sort[]=f2%2Cdesc')
|
93
96
|
end
|
94
97
|
|
95
98
|
it "should replace any existing sort parameter" do
|
96
99
|
resource.sort('f1', 'f2,desc')
|
97
|
-
resource.sort('f3,asc', 'f4').uri.query.
|
100
|
+
expect(resource.sort('f3,asc', 'f4').uri.query).to eq('sort[]=f3%2Casc&sort[]=f4')
|
98
101
|
end
|
99
102
|
end
|
100
103
|
|
101
104
|
%w{count each each_page}.each do |method|
|
102
105
|
describe method do
|
103
106
|
it "should call the client's #{method} method with the resource's URI" do
|
104
|
-
client.
|
107
|
+
expect(client).to receive(method).with(resource.uri)
|
105
108
|
resource.__send__(method)
|
106
109
|
end
|
107
110
|
end
|
@@ -110,7 +113,7 @@ describe Springboard::Client::Resource do
|
|
110
113
|
%w{get head delete}.each do |method|
|
111
114
|
describe method do
|
112
115
|
it "should call the client's #{method} method with the resource's URI and a header hash" do
|
113
|
-
client.
|
116
|
+
expect(client).to receive(method).with(resource.uri, false)
|
114
117
|
resource.__send__(method)
|
115
118
|
end
|
116
119
|
end
|
@@ -119,7 +122,7 @@ describe Springboard::Client::Resource do
|
|
119
122
|
%w{put post}.each do |method|
|
120
123
|
describe method do
|
121
124
|
it "should call the client's #{method} method with the resource's URI, the given body, and a headers hash" do
|
122
|
-
client.
|
125
|
+
expect(client).to receive(method).with(resource.uri, "body", false)
|
123
126
|
resource.__send__(method, "body")
|
124
127
|
end
|
125
128
|
end
|
@@ -136,39 +139,44 @@ describe Springboard::Client::Resource do
|
|
136
139
|
it "should set the per_page query string param to 1" do
|
137
140
|
request_stub = stub_request(:get, "#{base_url}/some/path?page=1&per_page=1").to_return(response_data)
|
138
141
|
resource.first
|
139
|
-
request_stub.
|
142
|
+
expect(request_stub).to have_been_requested
|
140
143
|
end
|
141
144
|
|
142
145
|
it "should return the first element of the :results array" do
|
143
146
|
request_stub = stub_request(:get, "#{base_url}/some/path?page=1&per_page=1").to_return(response_data)
|
144
|
-
resource.first.
|
147
|
+
expect(resource.first).to eq({"id" => "Me first!"})
|
145
148
|
end
|
146
149
|
end
|
147
150
|
|
148
151
|
describe "embed" do
|
149
152
|
it "should support a single embed" do
|
150
|
-
resource.embed(:thing1).uri.to_s.
|
153
|
+
expect(resource.embed(:thing1).uri.to_s).to eq(
|
151
154
|
'/some/path?_include[]=thing1'
|
155
|
+
)
|
152
156
|
end
|
153
157
|
|
154
158
|
it "should support multiple embeds" do
|
155
|
-
resource.embed(:thing1, :thing2, :thing3).uri.to_s.
|
159
|
+
expect(resource.embed(:thing1, :thing2, :thing3).uri.to_s).to eq(
|
156
160
|
'/some/path?_include[]=thing1&_include[]=thing2&_include[]=thing3'
|
161
|
+
)
|
157
162
|
end
|
158
163
|
|
159
164
|
it "should merge multiple embed calls" do
|
160
|
-
resource.embed(:thing1, :thing2).embed(:thing3, :thing4).uri.to_s.
|
165
|
+
expect(resource.embed(:thing1, :thing2).embed(:thing3, :thing4).uri.to_s).to eq(
|
161
166
|
'/some/path?_include[]=thing1&_include[]=thing2&_include[]=thing3&_include[]=thing4'
|
167
|
+
)
|
162
168
|
end
|
163
169
|
|
164
170
|
it "should merge multiple embed calls" do
|
165
|
-
resource.embed(:thing1, :thing2).embed(:thing3, :thing4).uri.to_s.
|
171
|
+
expect(resource.embed(:thing1, :thing2).embed(:thing3, :thing4).uri.to_s).to eq(
|
166
172
|
'/some/path?_include[]=thing1&_include[]=thing2&_include[]=thing3&_include[]=thing4'
|
173
|
+
)
|
167
174
|
end
|
168
175
|
|
169
176
|
it "should merge a call to embed with a manually added _include query param" do
|
170
|
-
resource.query('_include[]' => :thing1).embed(:thing2, :thing3).uri.to_s.
|
177
|
+
expect(resource.query('_include[]' => :thing1).embed(:thing2, :thing3).uri.to_s).to eq(
|
171
178
|
'/some/path?_include[]=thing1&_include[]=thing2&_include[]=thing3'
|
179
|
+
)
|
172
180
|
end
|
173
181
|
end
|
174
182
|
|
@@ -183,13 +191,13 @@ describe Springboard::Client::Resource do
|
|
183
191
|
yielded_results = []
|
184
192
|
|
185
193
|
# timeout in case of endless loop
|
186
|
-
Timeout::timeout(
|
194
|
+
Timeout::timeout(10) do
|
187
195
|
resource.while_results do |result|
|
188
196
|
yielded_results.push results.shift
|
189
197
|
end
|
190
198
|
end
|
191
199
|
|
192
|
-
yielded_results.
|
200
|
+
expect(yielded_results).to eq(["r1", "r2", "r3"])
|
193
201
|
end
|
194
202
|
|
195
203
|
it "should raise an exception if it receives an error response" do
|
@@ -198,7 +206,7 @@ describe Springboard::Client::Resource do
|
|
198
206
|
end
|
199
207
|
|
200
208
|
# timeout in case of endless loop
|
201
|
-
Timeout::timeout(
|
209
|
+
Timeout::timeout(10) do
|
202
210
|
expect do
|
203
211
|
resource.while_results do |result|
|
204
212
|
# nothing
|
@@ -208,42 +216,42 @@ describe Springboard::Client::Resource do
|
|
208
216
|
end
|
209
217
|
|
210
218
|
describe "exists?" do
|
211
|
-
let(:response) {
|
219
|
+
let(:response) { double(Springboard::Client::Response) }
|
212
220
|
|
213
221
|
it "should return true if the response indicates success" do
|
214
|
-
response.
|
215
|
-
client.
|
216
|
-
resource.exists
|
222
|
+
allow(response).to receive(:success?).and_return(true)
|
223
|
+
expect(client).to receive(:head).with(resource.uri, false).and_return(response)
|
224
|
+
expect(resource.exists?).to be === true
|
217
225
|
end
|
218
226
|
|
219
227
|
it "should return false if the response status is 404" do
|
220
|
-
response.
|
221
|
-
response.
|
222
|
-
client.
|
223
|
-
resource.exists
|
228
|
+
allow(response).to receive(:status).and_return(404)
|
229
|
+
allow(response).to receive(:success?).and_return(false)
|
230
|
+
expect(client).to receive(:head).with(resource.uri, false).and_return(response)
|
231
|
+
expect(resource.exists?).to be === false
|
224
232
|
end
|
225
233
|
|
226
234
|
it "should raise a RequestFailed exception if the request fails but the status is not 404" do
|
227
|
-
response.
|
228
|
-
response.
|
229
|
-
client.
|
235
|
+
allow(response).to receive(:status).and_return(400)
|
236
|
+
allow(response).to receive(:success?).and_return(false)
|
237
|
+
expect(client).to receive(:head).with(resource.uri, false).and_return(response)
|
230
238
|
expect { resource.exists? }.to raise_error { |e|
|
231
|
-
e.
|
232
|
-
e.response.
|
233
|
-
e.message.
|
239
|
+
expect(e).to be_a Springboard::Client::RequestFailed
|
240
|
+
expect(e.response).to be === response
|
241
|
+
expect(e.message).to eq("Request during call to 'exists?' resulted in non-404 error.")
|
234
242
|
}
|
235
243
|
end
|
236
244
|
end
|
237
245
|
|
238
246
|
describe "empty?" do
|
239
247
|
it "should return true if the resource has a count of zero" do
|
240
|
-
resource.
|
241
|
-
resource.empty
|
248
|
+
allow(resource).to receive(:count).and_return 0
|
249
|
+
expect(resource.empty?).to be === true
|
242
250
|
end
|
243
251
|
|
244
252
|
it "should return false if the resource has a count greater than zero" do
|
245
|
-
resource.
|
246
|
-
resource.empty
|
253
|
+
allow(resource).to receive(:count).and_return 10
|
254
|
+
expect(resource.empty?).to be === false
|
247
255
|
end
|
248
256
|
end
|
249
257
|
end
|
@@ -13,11 +13,11 @@ describe Springboard::Client::Response do
|
|
13
13
|
describe "body" do
|
14
14
|
describe "if raw body is valid JSON" do
|
15
15
|
it "should return a Springboard::Client::Body" do
|
16
|
-
response.body.
|
16
|
+
expect(response.body).to be_a Springboard::Client::Body
|
17
17
|
end
|
18
18
|
|
19
19
|
it "should wrap the parsed response body" do
|
20
|
-
response.body.to_hash.
|
20
|
+
expect(response.body.to_hash).to eq({"key" => "value"})
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
@@ -42,13 +42,13 @@ describe Springboard::Client::Response do
|
|
42
42
|
|
43
43
|
describe "raw_body" do
|
44
44
|
it "should return the raw body JSON" do
|
45
|
-
response.raw_body.
|
45
|
+
expect(response.raw_body).to eq(raw_body)
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
49
|
describe "headers" do
|
50
50
|
it "should return the response headers as a hash" do
|
51
|
-
response.headers.
|
51
|
+
expect(response.headers).to eq({'X-Custom-Header' => 'Hi'})
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
@@ -57,11 +57,11 @@ describe Springboard::Client::Response do
|
|
57
57
|
let(:raw_headers) { 'Location: /new/path' }
|
58
58
|
|
59
59
|
it "should be a Springboard::Client::Resource" do
|
60
|
-
response.resource.
|
60
|
+
expect(response.resource).to be_a Springboard::Client::Resource
|
61
61
|
end
|
62
62
|
|
63
63
|
it "should have the Location header value as its URL" do
|
64
|
-
response.resource.uri.to_s.
|
64
|
+
expect(response.resource.uri.to_s).to eq('/new/path')
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
@@ -69,31 +69,31 @@ describe Springboard::Client::Response do
|
|
69
69
|
let(:raw_headers) { '' }
|
70
70
|
|
71
71
|
it "should be nil" do
|
72
|
-
response.resource.
|
72
|
+
expect(response.resource).to be_nil
|
73
73
|
end
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
77
|
describe "[]" do
|
78
78
|
it "should forward [] to body" do
|
79
|
-
response.body.
|
80
|
-
response["key"].
|
79
|
+
expect(response.body).to receive(:[]).with("key").and_return("value")
|
80
|
+
expect(response["key"]).to eq("value")
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
84
84
|
describe "success?" do
|
85
85
|
%w{100 101 102 200 201 202 203 204 205 206 207 208 226 300 301 302 303 304 305 306 307 308}.each do |code|
|
86
86
|
it "should return true if the response status code is #{code}" do
|
87
|
-
response.
|
88
|
-
response.success
|
87
|
+
allow(response).to receive(:status).and_return(code.to_i)
|
88
|
+
expect(response.success?).to be === true
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
92
92
|
%w{400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 420 422 423 424 425 426 428 429 431
|
93
93
|
444 449 450 499 500 501 502 503 504 505 506 507 508 509 510 511 598 599}.each do |code|
|
94
94
|
it "should return false if the response status code is #{code}" do
|
95
|
-
response.
|
96
|
-
response.success
|
95
|
+
allow(response).to receive(:status).and_return(code.to_i)
|
96
|
+
expect(response.success?).to be === false
|
97
97
|
end
|
98
98
|
end
|
99
99
|
end
|
@@ -5,8 +5,8 @@ describe Addressable::URI do
|
|
5
5
|
|
6
6
|
describe "subpath" do
|
7
7
|
it "should return a new URI with the path relative to the receiver" do
|
8
|
-
uri.subpath('other').
|
9
|
-
uri.subpath('/other').
|
8
|
+
expect(uri.subpath('other')).to eq(Addressable::URI.parse('/relative/path/other'))
|
9
|
+
expect(uri.subpath('/other')).to eq(Addressable::URI.parse('/relative/path/other'))
|
10
10
|
uri.subpath(Addressable::URI.parse('/other')) == Addressable::URI.parse('/relative/path/other')
|
11
11
|
end
|
12
12
|
end
|
@@ -14,20 +14,20 @@ describe Addressable::URI do
|
|
14
14
|
describe "merge_query_values!" do
|
15
15
|
it "should call springboard_query_values=" do
|
16
16
|
uri.query_values = {'a' => '1'}
|
17
|
-
uri.
|
17
|
+
expect(uri).to receive(:springboard_query_values=).with({'a' => '1', 'b' => '2'})
|
18
18
|
uri.merge_query_values! 'b' => '2'
|
19
19
|
end
|
20
20
|
|
21
21
|
it "should merge the given values with the existing query_values" do
|
22
22
|
uri.query_values = {'a' => '1', 'b' => '2'}
|
23
23
|
uri.merge_query_values! 'b' => '20', 'c' => '30'
|
24
|
-
uri.query_values.
|
24
|
+
expect(uri.query_values).to eq({'a' => '1', 'b' => '20', 'c' => '30'})
|
25
25
|
end
|
26
26
|
|
27
27
|
it "should set the given values if there are no existing query_values" do
|
28
|
-
uri.query_values.
|
28
|
+
expect(uri.query_values).to be_nil
|
29
29
|
uri.merge_query_values! 'b' => '20', 'c' => '30'
|
30
|
-
uri.query_values.
|
30
|
+
expect(uri.query_values).to eq({'b' => '20', 'c' => '30'})
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -35,17 +35,17 @@ describe Addressable::URI do
|
|
35
35
|
it "should preserve empty bracket notation for array params" do
|
36
36
|
uri.query = 'sort[]=f1&sort[]=f2'
|
37
37
|
uri.__send__(:springboard_query_values=, uri.query_values)
|
38
|
-
uri.to_s.
|
38
|
+
expect(uri.to_s).to eq('/relative/path?sort[]=f1&sort[]=f2')
|
39
39
|
end
|
40
40
|
|
41
41
|
it "should stringify boolean param values" do
|
42
42
|
uri.__send__(:springboard_query_values=, {:p1 => true, :p2 => false})
|
43
|
-
uri.to_s.
|
43
|
+
expect(uri.to_s).to eq('/relative/path?p1=true&p2=false')
|
44
44
|
end
|
45
45
|
|
46
46
|
it "should support hash param values" do
|
47
47
|
uri.__send__(:springboard_query_values=, {:a => {:b => {:c => 123}}})
|
48
|
-
uri.to_s.
|
48
|
+
expect(uri.to_s).to eq('/relative/path?a[b][c]=123')
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
@@ -5,7 +5,7 @@ describe Springboard::Client do
|
|
5
5
|
|
6
6
|
describe "session" do
|
7
7
|
it "should be a Patron::Session" do
|
8
|
-
client.session.
|
8
|
+
expect(client.session).to be_a Patron::Session
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
@@ -15,64 +15,64 @@ describe Springboard::Client do
|
|
15
15
|
:body => "auth_key=coco&password=boggle",
|
16
16
|
:headers => {'Content-Type' => 'application/x-www-form-urlencoded'}
|
17
17
|
client.auth(:username => 'coco', :password => 'boggle')
|
18
|
-
request_stub.
|
18
|
+
expect(request_stub).to have_been_requested
|
19
19
|
end
|
20
20
|
|
21
21
|
it "should raise an exception if called without username or password" do
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
expect { client.auth }.to raise_error("Must specify :username and :password")
|
23
|
+
expect { client.auth(:username => 'x') }.to raise_error("Must specify :username and :password")
|
24
|
+
expect { client.auth(:password => 'y') }.to raise_error("Must specify :username and :password")
|
25
25
|
end
|
26
26
|
|
27
27
|
it "should return true if auth succeeds" do
|
28
28
|
stub_request(:post, "#{base_url}/auth/identity/callback").to_return(:status => 200)
|
29
|
-
|
29
|
+
expect(client.auth(:username => 'someone', :password => 'right')).to be_truthy
|
30
30
|
end
|
31
31
|
|
32
32
|
it "should raise an AuthFailed if auth fails" do
|
33
33
|
stub_request(:post, "#{base_url}/auth/identity/callback").to_return(:status => 401)
|
34
|
-
|
34
|
+
expect { client.auth(:username => 'someone', :password => 'wrong') }.to \
|
35
35
|
raise_error(Springboard::Client::AuthFailed, "Springboard auth failed")
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
39
|
describe "initialize" do
|
40
40
|
it "should call configure_session" do
|
41
|
-
Springboard::Client.
|
41
|
+
expect_any_instance_of(Springboard::Client).to receive(:configure_session).with(base_url, {:x => 'y'})
|
42
42
|
Springboard::Client.new(base_url, :x => 'y')
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
46
|
describe "configure_session" do
|
47
47
|
it "should set the session's base_url" do
|
48
|
-
session.
|
48
|
+
expect(session).to receive(:base_url=).with(base_url)
|
49
49
|
client.__send__(:configure_session, base_url, :x => 'y')
|
50
50
|
end
|
51
51
|
|
52
52
|
it "should enable cookies" do
|
53
|
-
session.
|
53
|
+
expect(session).to receive(:handle_cookies)
|
54
54
|
client.__send__(:configure_session, base_url, :x => 'y')
|
55
55
|
end
|
56
56
|
|
57
57
|
it "should allow setting insecure on the session" do
|
58
|
-
session.
|
58
|
+
expect(session).to receive(:insecure=).with(true)
|
59
59
|
client.__send__(:configure_session, base_url, :insecure => true)
|
60
60
|
end
|
61
61
|
|
62
62
|
it "set the default timeout" do
|
63
63
|
client.__send__(:configure_session, base_url, {})
|
64
|
-
client.session.timeout.
|
64
|
+
expect(client.session.timeout).to eq(Springboard::Client::DEFAULT_TIMEOUT)
|
65
65
|
end
|
66
66
|
|
67
67
|
it "set the default connect timeout" do
|
68
68
|
client.__send__(:configure_session, base_url, {})
|
69
|
-
client.session.connect_timeout.
|
69
|
+
expect(client.session.connect_timeout).to eq(Springboard::Client::DEFAULT_CONNECT_TIMEOUT)
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
73
73
|
describe "[]" do
|
74
74
|
it "should return a resource object with the given path and client" do
|
75
|
-
client["path"].
|
75
|
+
expect(client["path"]).to be_a Springboard::Client::Resource
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
@@ -81,37 +81,37 @@ describe Springboard::Client do
|
|
81
81
|
bang_method = "#{method}!"
|
82
82
|
describe method do
|
83
83
|
it "should call session's #{method}" do
|
84
|
-
session.
|
84
|
+
expect(session).to receive(method).with('/relative/path')
|
85
85
|
client.__send__(method, '/relative/path')
|
86
86
|
end
|
87
87
|
|
88
88
|
it "should return a Springboard::Client::Response" do
|
89
|
-
|
89
|
+
stub_request(method, "#{base_url}/relative/path")
|
90
90
|
response = client.__send__(method, '/relative/path')
|
91
|
-
response.
|
91
|
+
expect(response).to be_a Springboard::Client::Response
|
92
92
|
end
|
93
93
|
|
94
94
|
it "should remove redundant base path prefix from URL if present" do
|
95
|
-
|
95
|
+
stub_request(method, "#{base_url}/relative/path")
|
96
96
|
response = client.__send__(method, '/api/relative/path')
|
97
|
-
response.
|
97
|
+
expect(response).to be_a Springboard::Client::Response
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
101
101
|
describe bang_method do
|
102
102
|
it "should call #{method}" do
|
103
|
-
response =
|
104
|
-
response.
|
105
|
-
client.
|
106
|
-
client.__send__(bang_method, '/path').
|
103
|
+
response = double(Springboard::Client::Response)
|
104
|
+
expect(response).to receive(:success?).and_return(true)
|
105
|
+
expect(client).to receive(method).with('/path', false).and_return(response)
|
106
|
+
expect(client.__send__(bang_method, '/path')).to be === response
|
107
107
|
end
|
108
108
|
|
109
109
|
it "should raise an exception on failure" do
|
110
|
-
response =
|
111
|
-
response.
|
112
|
-
response.
|
113
|
-
client.
|
114
|
-
|
110
|
+
response = double(Springboard::Client::Response)
|
111
|
+
expect(response).to receive(:success?).and_return(false)
|
112
|
+
expect(response).to receive(:status_line).and_return('404 Not Found')
|
113
|
+
expect(client).to receive(method).with('/path', false).and_return(response)
|
114
|
+
expect { client.send(bang_method, '/path') }.to raise_error(Springboard::Client::RequestFailed)
|
115
115
|
end
|
116
116
|
end
|
117
117
|
end
|
@@ -121,19 +121,19 @@ describe Springboard::Client do
|
|
121
121
|
bang_method = "#{method}!"
|
122
122
|
describe method do
|
123
123
|
it "should call session's #{method}" do
|
124
|
-
session.
|
124
|
+
expect(session).to receive(method).with('/relative/path', 'body')
|
125
125
|
client.__send__(method, '/relative/path', 'body')
|
126
126
|
end
|
127
127
|
|
128
128
|
it "should return a Springboard::Client::Response" do
|
129
|
-
|
129
|
+
stub_request(method, "#{base_url}/relative/path")
|
130
130
|
response = client.__send__(method, '/relative/path', 'body')
|
131
|
-
response.
|
131
|
+
expect(response).to be_a Springboard::Client::Response
|
132
132
|
end
|
133
133
|
|
134
134
|
it "should serialize the request body as JSON if it is a hash" do
|
135
135
|
body_hash = {:key1 => 'val1', :key2 => 'val2'}
|
136
|
-
session.
|
136
|
+
expect(session).to receive(method).with('/path', body_hash.to_json)
|
137
137
|
client.__send__(method, '/path', body_hash)
|
138
138
|
end
|
139
139
|
|
@@ -141,33 +141,33 @@ describe Springboard::Client do
|
|
141
141
|
request_stub = stub_request(method, "#{base_url}/my/resource").
|
142
142
|
with(:headers => {'Content-Type' => 'application/json'})
|
143
143
|
client.__send__(method, '/my/resource', :key1 => 'val1')
|
144
|
-
request_stub.
|
144
|
+
expect(request_stub).to have_been_requested
|
145
145
|
end
|
146
146
|
|
147
147
|
it "should set the Content-Type header to specified value if specified" do
|
148
148
|
request_stub = stub_request(method, "#{base_url}/my/resource").
|
149
149
|
with(:headers => {'Content-Type' => 'application/pdf'})
|
150
150
|
client.__send__(method, '/my/resource', {:key1 => 'val1'}, 'Content-Type' => 'application/pdf')
|
151
|
-
request_stub.
|
151
|
+
expect(request_stub).to have_been_requested
|
152
152
|
end
|
153
153
|
end
|
154
154
|
|
155
155
|
describe bang_method do
|
156
156
|
it "should call #{method}" do
|
157
|
-
response =
|
158
|
-
response.
|
159
|
-
client.
|
160
|
-
client.__send__(bang_method, '/path', 'body').
|
157
|
+
response = double(Springboard::Client::Response)
|
158
|
+
expect(response).to receive(:success?).and_return(true)
|
159
|
+
expect(client).to receive(method).with('/path', 'body', false).and_return(response)
|
160
|
+
expect(client.__send__(bang_method, '/path', 'body')).to be === response
|
161
161
|
end
|
162
162
|
|
163
163
|
it "should raise an exception on failure" do
|
164
|
-
response =
|
165
|
-
response.
|
166
|
-
response.
|
167
|
-
client.
|
164
|
+
response = double(Springboard::Client::Response)
|
165
|
+
expect(response).to receive(:success?).and_return(false)
|
166
|
+
expect(response).to receive(:status_line).and_return('404 Not Found')
|
167
|
+
expect(client).to receive(method).with('/path', 'body', false).and_return(response)
|
168
168
|
expect { client.send(bang_method, '/path', 'body') }.to raise_error { |error|
|
169
|
-
error.
|
170
|
-
error.response.
|
169
|
+
expect(error).to be_a(Springboard::Client::RequestFailed)
|
170
|
+
expect(error.response).to be === response
|
171
171
|
}
|
172
172
|
end
|
173
173
|
end
|
@@ -176,10 +176,10 @@ describe Springboard::Client do
|
|
176
176
|
describe "each_page" do
|
177
177
|
it "should request each page of the collection and yield each response to the block" do
|
178
178
|
responses = (1..3).map do |p|
|
179
|
-
response =
|
180
|
-
response.
|
179
|
+
response = double(Springboard::Client::Response)
|
180
|
+
allow(response).to receive(:[]).with('pages').and_return(3)
|
181
181
|
|
182
|
-
client.
|
182
|
+
expect(client).to receive(:get!).with("/things?page=#{p}&per_page=20".to_uri).and_return(response)
|
183
183
|
|
184
184
|
response
|
185
185
|
end
|
@@ -193,15 +193,15 @@ describe Springboard::Client do
|
|
193
193
|
describe "each" do
|
194
194
|
it "should request each page of the collection and yield each individual result to the block" do
|
195
195
|
all_results = (1..3).inject([]) do |results, p|
|
196
|
-
response =
|
197
|
-
response.
|
196
|
+
response = double(Springboard::Client::Response)
|
197
|
+
allow(response).to receive(:[]).with('pages').and_return(3)
|
198
198
|
|
199
199
|
page_results = 20.times.map {|i| "Page #{p} result #{i+1}"}
|
200
200
|
results += page_results
|
201
201
|
|
202
|
-
response.
|
202
|
+
allow(response).to receive(:[]).with('results').and_return(page_results)
|
203
203
|
|
204
|
-
client.
|
204
|
+
expect(client).to receive(:get!).with("/things?page=#{p}&per_page=20".to_uri).and_return(response)
|
205
205
|
|
206
206
|
results
|
207
207
|
end
|
data/springboard-retail.gemspec
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
|
-
s.name =
|
3
|
-
s.version =
|
2
|
+
s.name = 'springboard-retail'
|
3
|
+
s.version = '4.0.1'
|
4
4
|
s.platform = Gem::Platform::RUBY
|
5
|
-
s.authors = [
|
6
|
-
s.summary =
|
5
|
+
s.authors = ['Jay Stotz']
|
6
|
+
s.summary = 'Springboard Retail API client library'
|
7
7
|
|
8
|
-
s.required_rubygems_version =
|
8
|
+
s.required_rubygems_version = '>= 1.3.6'
|
9
9
|
|
10
|
-
s.add_runtime_dependency 'patron', '
|
11
|
-
s.add_runtime_dependency 'addressable', '
|
10
|
+
s.add_runtime_dependency 'patron', '0.4.18'
|
11
|
+
s.add_runtime_dependency 'addressable', '~> 2.2.8'
|
12
12
|
s.add_runtime_dependency 'json', '>= 1.7.4'
|
13
13
|
s.add_runtime_dependency 'hashie'
|
14
14
|
|
15
15
|
s.files = `git ls-files`.split("\n")
|
16
|
-
|
16
|
+
|
17
17
|
s.require_path = 'lib'
|
18
18
|
end
|
19
|
-
|
20
|
-
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: springboard-retail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jay Stotz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: patron
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 0.4.18
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.4.18
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: addressable
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 2.2.8
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 2.2.8
|
41
41
|
- !ruby/object:Gem::Dependency
|
@@ -98,30 +98,34 @@ files:
|
|
98
98
|
- spec/springboard/client_spec.rb
|
99
99
|
- springboard-retail.gemspec
|
100
100
|
- vendor/cache/addressable-2.2.8.gem
|
101
|
-
- vendor/cache/coderay-1.0.
|
102
|
-
- vendor/cache/coveralls-0.
|
103
|
-
- vendor/cache/crack-0.
|
104
|
-
- vendor/cache/diff-lcs-1.
|
105
|
-
- vendor/cache/
|
106
|
-
- vendor/cache/
|
107
|
-
- vendor/cache/
|
108
|
-
- vendor/cache/
|
109
|
-
- vendor/cache/
|
101
|
+
- vendor/cache/coderay-1.1.0.gem
|
102
|
+
- vendor/cache/coveralls-0.7.11.gem
|
103
|
+
- vendor/cache/crack-0.4.2.gem
|
104
|
+
- vendor/cache/diff-lcs-1.2.5.gem
|
105
|
+
- vendor/cache/docile-1.1.5.gem
|
106
|
+
- vendor/cache/hashie-3.4.1.gem
|
107
|
+
- vendor/cache/json-1.8.2.gem
|
108
|
+
- vendor/cache/method_source-0.8.2.gem
|
109
|
+
- vendor/cache/mime-types-2.4.3.gem
|
110
|
+
- vendor/cache/multi_json-1.11.0.gem
|
111
|
+
- vendor/cache/netrc-0.10.3.gem
|
110
112
|
- vendor/cache/patron-0.4.18.gem
|
111
|
-
- vendor/cache/pry-0.
|
112
|
-
- vendor/cache/rake-
|
113
|
-
- vendor/cache/rest-client-1.
|
114
|
-
- vendor/cache/rspec-2.
|
115
|
-
- vendor/cache/rspec-core-2.
|
116
|
-
- vendor/cache/rspec-expectations-2.
|
117
|
-
- vendor/cache/rspec-mocks-2.
|
118
|
-
- vendor/cache/
|
119
|
-
- vendor/cache/
|
120
|
-
- vendor/cache/
|
121
|
-
- vendor/cache/
|
122
|
-
- vendor/cache/
|
123
|
-
- vendor/cache/
|
124
|
-
- vendor/cache/
|
113
|
+
- vendor/cache/pry-0.10.1.gem
|
114
|
+
- vendor/cache/rake-10.4.2.gem
|
115
|
+
- vendor/cache/rest-client-1.7.3.gem
|
116
|
+
- vendor/cache/rspec-3.2.0.gem
|
117
|
+
- vendor/cache/rspec-core-3.2.2.gem
|
118
|
+
- vendor/cache/rspec-expectations-3.2.0.gem
|
119
|
+
- vendor/cache/rspec-mocks-3.2.1.gem
|
120
|
+
- vendor/cache/rspec-support-3.2.2.gem
|
121
|
+
- vendor/cache/safe_yaml-1.0.4.gem
|
122
|
+
- vendor/cache/simplecov-0.9.2.gem
|
123
|
+
- vendor/cache/simplecov-html-0.9.0.gem
|
124
|
+
- vendor/cache/slop-3.6.0.gem
|
125
|
+
- vendor/cache/term-ansicolor-1.3.0.gem
|
126
|
+
- vendor/cache/thor-0.19.1.gem
|
127
|
+
- vendor/cache/tins-1.3.5.gem
|
128
|
+
- vendor/cache/webmock-1.17.4.gem
|
125
129
|
homepage:
|
126
130
|
licenses: []
|
127
131
|
metadata: {}
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/vendor/cache/json-1.8.1.gem
DELETED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/vendor/cache/pry-0.9.10.gem
DELETED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/vendor/cache/slop-3.3.2.gem
DELETED
Binary file
|
Binary file
|
data/vendor/cache/tins-0.9.0.gem
DELETED
Binary file
|
Binary file
|