springboard-retail 4.0.0 → 4.0.1
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 -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
|