springboard-retail 4.3.0 → 5.0.0.beta1
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/Gemfile.lock +5 -3
- data/README.md +1 -1
- data/Rakefile +1 -0
- data/lib/springboard/client.rb +53 -31
- data/lib/springboard/client/response.rb +2 -2
- data/spec/shared_client_context.rb +1 -1
- data/spec/springboard/client/response_spec.rb +10 -5
- data/spec/springboard/client_spec.rb +58 -41
- data/springboard-retail.gemspec +2 -2
- data/vendor/cache/faraday-0.15.3.gem +0 -0
- data/vendor/cache/multipart-post-2.0.0.gem +0 -0
- metadata +9 -8
- data/vendor/cache/patron-0.4.18.gem +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e3f1c34c2de4f27e11f8f93d315320fda31dc5ce77cae64ff5bfd8ad05b1a829
|
4
|
+
data.tar.gz: 32a2792c3918475a048016e65abf4a94f9bb49390f8e814f8bcd9ffae715f6de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3163fe21165c88658f48c473059fd3e780ec831ad48ee1dbc385e0f1a91227663bb193fd2bf4f20f1f6891017cbf0c863dfb9ee89599f5eb68f8e27d96e9daa
|
7
|
+
data.tar.gz: 5374e740213dfe9ffe0c5e2e7f76dc3b9f6b7dcebd5afc2292fa696e129aedc79cfe7124ba2f1971f9accaa6610d8cd45ca44b2329d60a98dd2ab0fa95ebc230
|
data/Gemfile.lock
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
springboard-retail (
|
4
|
+
springboard-retail (5.0.0.beta1)
|
5
|
+
faraday
|
5
6
|
hashie
|
6
7
|
json (>= 1.7.4)
|
7
|
-
patron (= 0.4.18)
|
8
8
|
|
9
9
|
GEM
|
10
10
|
remote: https://rubygems.org/
|
@@ -23,13 +23,15 @@ GEM
|
|
23
23
|
safe_yaml (~> 1.0.0)
|
24
24
|
diff-lcs (1.2.5)
|
25
25
|
docile (1.1.5)
|
26
|
+
faraday (0.15.3)
|
27
|
+
multipart-post (>= 1.2, < 3)
|
26
28
|
hashie (3.6.0)
|
27
29
|
json (2.1.0)
|
28
30
|
method_source (0.8.2)
|
29
31
|
mime-types (2.4.3)
|
30
32
|
multi_json (1.11.0)
|
33
|
+
multipart-post (2.0.0)
|
31
34
|
netrc (0.10.3)
|
32
|
-
patron (0.4.18)
|
33
35
|
pry (0.10.1)
|
34
36
|
coderay (~> 1.1.0)
|
35
37
|
method_source (~> 0.8.1)
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
This is the [Springboard Retail](http://springboardretail.com/) (a point-of-sale/retail management system) client library for Ruby. It provides access to the Springboard Retail HTTP API.
|
9
9
|
|
10
|
-
It is a wrapper around the [
|
10
|
+
It is a wrapper around the [Faraday](https://github.com/lostisland/faraday) HTTP client library.
|
11
11
|
|
12
12
|
You can find [documentation here](http://rdoc.info/github/springboardretail/springboard-client-ruby).
|
13
13
|
|
data/Rakefile
CHANGED
@@ -11,6 +11,7 @@ task :default => :spec
|
|
11
11
|
desc "Start a console with a Springboard::Client instance"
|
12
12
|
task :console do
|
13
13
|
require 'springboard/client'
|
14
|
+
require 'pry'
|
14
15
|
CLIENT = Springboard::Client.new(ENV['URI'])
|
15
16
|
CLIENT.auth :username => ENV['USER'], :password => ENV['PASSWORD']
|
16
17
|
Pry.start
|
data/lib/springboard/client.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require '
|
2
|
+
require 'faraday'
|
3
3
|
require 'json'
|
4
|
+
require 'logger'
|
4
5
|
|
5
6
|
require 'springboard/client/errors'
|
6
7
|
|
@@ -33,6 +34,10 @@ module Springboard
|
|
33
34
|
# @return [URI] The client's base URI
|
34
35
|
attr_reader :base_uri
|
35
36
|
|
37
|
+
##
|
38
|
+
# @return [Faraday::Connection] Faraday's connection
|
39
|
+
attr_reader :connection
|
40
|
+
|
36
41
|
##
|
37
42
|
# @param [String] base_uri Base URI
|
38
43
|
# @option opts [Boolean, String] :debug Pass true to debug to stdout. Pass a String to debug to given filename.
|
@@ -40,17 +45,8 @@ module Springboard
|
|
40
45
|
# @option opts [String] :token Springboard API Token
|
41
46
|
def initialize(base_uri, opts={})
|
42
47
|
@base_uri = URI.parse(base_uri)
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
##
|
47
|
-
# Returns the underlying Patron session
|
48
|
-
#
|
49
|
-
# @see http://patron.rubyforge.org/Patron/Session.html Patron::Session docs
|
50
|
-
#
|
51
|
-
# @return [Patron::Session]
|
52
|
-
def session
|
53
|
-
@session ||= Patron::Session.new
|
48
|
+
@opts = opts
|
49
|
+
configure_connection!
|
54
50
|
end
|
55
51
|
|
56
52
|
##
|
@@ -61,7 +57,8 @@ module Springboard
|
|
61
57
|
#
|
62
58
|
# @return [String, Boolean] The debug argument
|
63
59
|
def debug=(debug)
|
64
|
-
|
60
|
+
@opts[:debug] = debug
|
61
|
+
configure_connection!
|
65
62
|
end
|
66
63
|
|
67
64
|
##
|
@@ -85,7 +82,13 @@ module Springboard
|
|
85
82
|
:password => opts[:password]
|
86
83
|
response = post '/auth/identity/callback', body,
|
87
84
|
'Content-Type' => 'application/x-www-form-urlencoded'
|
88
|
-
|
85
|
+
|
86
|
+
if response.success?
|
87
|
+
@session_cookie = response.headers['set-cookie']
|
88
|
+
return true
|
89
|
+
else
|
90
|
+
raise AuthFailed, "Springboard auth failed"
|
91
|
+
end
|
89
92
|
end
|
90
93
|
|
91
94
|
##
|
@@ -214,20 +217,26 @@ module Springboard
|
|
214
217
|
|
215
218
|
private
|
216
219
|
|
220
|
+
attr_reader :opts, :session_cookie
|
221
|
+
|
217
222
|
def prepare_request_body(body)
|
218
223
|
body.is_a?(Hash) ? JSON.dump(body) : body
|
219
224
|
end
|
220
225
|
|
221
226
|
def make_request(method, uri, headers=false, body=false)
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
227
|
+
response = connection.__send__( method, prepare_uri(uri)) do |request|
|
228
|
+
request.headers = headers unless headers === false
|
229
|
+
request.headers['Cookie'] = session_cookie if session_cookie
|
230
|
+
|
231
|
+
request.body = prepare_request_body(body) unless body === false
|
232
|
+
end
|
233
|
+
|
234
|
+
new_response(response)
|
226
235
|
end
|
227
236
|
|
228
237
|
def raise_on_fail(response)
|
229
238
|
if !response.success?
|
230
|
-
error = RequestFailed.new "Request failed with status: #{response.
|
239
|
+
error = RequestFailed.new "Request failed with status: #{response.status}"
|
231
240
|
error.response = response
|
232
241
|
raise error
|
233
242
|
end
|
@@ -236,22 +245,35 @@ module Springboard
|
|
236
245
|
|
237
246
|
def prepare_uri(uri)
|
238
247
|
uri = URI.parse(uri)
|
239
|
-
uri.to_s
|
248
|
+
uri.to_s
|
249
|
+
.gsub(/^#{base_uri.to_s}|^#{base_uri.path}/, '')
|
250
|
+
.gsub(/^\//, '')
|
240
251
|
end
|
241
252
|
|
242
|
-
def new_response(
|
243
|
-
Response.new
|
253
|
+
def new_response(faraday_response)
|
254
|
+
Response.new faraday_response, self
|
255
|
+
end
|
256
|
+
|
257
|
+
def configure_connection!
|
258
|
+
@connection = Faraday.new
|
259
|
+
|
260
|
+
connection.url_prefix= base_uri.to_s
|
261
|
+
|
262
|
+
connection.headers['Content-Type'] = 'application/json'
|
263
|
+
connection.headers['Authorization'] = "Bearer #{opts[:token]}" if opts[:token]
|
264
|
+
|
265
|
+
connection.ssl[:verify] = false if opts.has_key?(:insecure)
|
266
|
+
|
267
|
+
connection.options.timeout = DEFAULT_TIMEOUT
|
268
|
+
connection.options.open_timeout = DEFAULT_CONNECT_TIMEOUT
|
269
|
+
|
270
|
+
if debug = opts[:debug]
|
271
|
+
connection.response :logger, debug_logger(debug), bodies: true
|
272
|
+
end
|
244
273
|
end
|
245
274
|
|
246
|
-
def
|
247
|
-
|
248
|
-
session.headers['Content-Type'] = 'application/json'
|
249
|
-
session.headers['Authorization'] = "Bearer #{opts[:token]}" if opts[:token]
|
250
|
-
session.handle_cookies
|
251
|
-
session.insecure = opts[:insecure] if opts.has_key?(:insecure)
|
252
|
-
session.timeout = DEFAULT_TIMEOUT
|
253
|
-
session.connect_timeout = DEFAULT_CONNECT_TIMEOUT
|
254
|
-
self.debug = opts[:debug] if opts.has_key?(:debug)
|
275
|
+
def debug_logger(debug)
|
276
|
+
Logger.new(debug == true ? STDOUT : debug)
|
255
277
|
end
|
256
278
|
end
|
257
279
|
end
|
@@ -44,9 +44,9 @@ module Springboard
|
|
44
44
|
end
|
45
45
|
|
46
46
|
##
|
47
|
-
# Delegates missing methods to the underlying
|
47
|
+
# Delegates missing methods to the underlying Faraday::Response.
|
48
48
|
#
|
49
|
-
# @see
|
49
|
+
# @see https://www.rubydoc.info/gems/faraday/Faraday/Response Faraday::Response docs
|
50
50
|
def method_missing(method, *args, &block)
|
51
51
|
@response.respond_to?(method) ? @response.__send__(method, *args, &block) : super
|
52
52
|
end
|
@@ -4,11 +4,16 @@ describe Springboard::Client::Response do
|
|
4
4
|
include_context "client"
|
5
5
|
|
6
6
|
let(:raw_body) { '{"key":"value"}' }
|
7
|
-
let(:raw_headers) { 'X-Custom-Header
|
7
|
+
let(:raw_headers) { { 'X-Custom-Header' => 'Hi' } }
|
8
8
|
let(:status_code) { 200 }
|
9
9
|
let(:path) { '/path' }
|
10
|
-
let(:
|
11
|
-
|
10
|
+
let(:faraday_response) do
|
11
|
+
env = Faraday::Env.new(:get, raw_body, path, nil, nil, nil, nil,
|
12
|
+
nil, raw_body, raw_headers, status_code)
|
13
|
+
|
14
|
+
Faraday::Response.new(env)
|
15
|
+
end
|
16
|
+
let(:response) { Springboard::Client::Response.new(faraday_response, client) }
|
12
17
|
|
13
18
|
describe "body" do
|
14
19
|
describe "if raw body is valid JSON" do
|
@@ -54,7 +59,7 @@ describe Springboard::Client::Response do
|
|
54
59
|
|
55
60
|
describe "resource" do
|
56
61
|
describe "when Location header is returned" do
|
57
|
-
let(:raw_headers) {
|
62
|
+
let(:raw_headers) { { Location: '/new/path' } }
|
58
63
|
|
59
64
|
it "should be a Springboard::Client::Resource" do
|
60
65
|
expect(response.resource).to be_a Springboard::Client::Resource
|
@@ -66,7 +71,7 @@ describe Springboard::Client::Response do
|
|
66
71
|
end
|
67
72
|
|
68
73
|
describe "when Location header is not returned" do
|
69
|
-
let(:raw_headers) {
|
74
|
+
let(:raw_headers) { Hash.new }
|
70
75
|
|
71
76
|
it "should be nil" do
|
72
77
|
expect(response.resource).to be_nil
|
@@ -3,17 +3,19 @@ require 'spec_helper'
|
|
3
3
|
describe Springboard::Client do
|
4
4
|
include_context "client"
|
5
5
|
|
6
|
-
describe "
|
7
|
-
it "should be a
|
8
|
-
expect(client.
|
6
|
+
describe "connection" do
|
7
|
+
it "should be a Faraday::Connection" do
|
8
|
+
expect(client.connection).to be_a Faraday::Connection
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
12
|
describe "auth" do
|
13
13
|
it "should attempt to authenticate with the given username and password" do
|
14
|
-
request_stub = stub_request(:post, "#{base_url}/auth/identity/callback").with
|
14
|
+
request_stub = stub_request(:post, "#{base_url}/auth/identity/callback").with(
|
15
15
|
:body => "auth_key=coco&password=boggle",
|
16
16
|
:headers => {'Content-Type' => 'application/x-www-form-urlencoded'}
|
17
|
+
)
|
18
|
+
|
17
19
|
client.auth(:username => 'coco', :password => 'boggle')
|
18
20
|
expect(request_stub).to have_been_requested
|
19
21
|
end
|
@@ -34,51 +36,55 @@ describe Springboard::Client do
|
|
34
36
|
expect { client.auth(:username => 'someone', :password => 'wrong') }.to \
|
35
37
|
raise_error(Springboard::Client::AuthFailed, "Springboard auth failed")
|
36
38
|
end
|
39
|
+
|
40
|
+
it "should store the session cookie" do
|
41
|
+
stub_request(:post, "#{base_url}/auth/identity/callback").to_return(headers: {'set-cookie' => '123'})
|
42
|
+
client.auth(:username => 'someone', :password => 'right')
|
43
|
+
expect(client.instance_variable_get(:@session_cookie)).to eq('123')
|
44
|
+
end
|
37
45
|
end
|
38
46
|
|
39
47
|
describe "initialize" do
|
40
|
-
it "should call
|
41
|
-
expect_any_instance_of(Springboard::Client).to receive(:
|
48
|
+
it "should call configure_connection!" do
|
49
|
+
expect_any_instance_of(Springboard::Client).to receive(:configure_connection!)
|
42
50
|
Springboard::Client.new(base_url, :x => 'y')
|
43
51
|
end
|
44
52
|
end
|
45
53
|
|
46
|
-
describe "
|
47
|
-
it "should set the
|
48
|
-
|
49
|
-
|
54
|
+
describe "configure_connection" do
|
55
|
+
it "should set the connection's url_prefix" do
|
56
|
+
client.__send__(:configure_connection!)
|
57
|
+
expect(connection.url_prefix.to_s).to eq(base_url)
|
50
58
|
end
|
51
59
|
|
52
|
-
it "should
|
53
|
-
|
54
|
-
client.__send__(:
|
55
|
-
|
56
|
-
|
57
|
-
it "should allow setting insecure on the session" do
|
58
|
-
expect(session).to receive(:insecure=).with(true)
|
59
|
-
client.__send__(:configure_session, base_url, :insecure => true)
|
60
|
+
it "should allow setting insecure on the connection" do
|
61
|
+
client.__send__(:opts)[:insecure] = true
|
62
|
+
client.__send__(:configure_connection!)
|
63
|
+
expect(connection.ssl[:verify]).to be false
|
60
64
|
end
|
61
65
|
|
62
66
|
it "set the default timeout" do
|
63
|
-
client.__send__(:
|
64
|
-
expect(
|
67
|
+
client.__send__(:configure_connection!)
|
68
|
+
expect(connection.options.timeout).to eq(Springboard::Client::DEFAULT_TIMEOUT)
|
65
69
|
end
|
66
70
|
|
67
71
|
it "set the default connect timeout" do
|
68
|
-
client.__send__(:
|
69
|
-
expect(
|
72
|
+
client.__send__(:configure_connection!)
|
73
|
+
expect(connection.options.open_timeout).to eq(Springboard::Client::DEFAULT_CONNECT_TIMEOUT)
|
70
74
|
end
|
71
75
|
|
72
76
|
context 'headers' do
|
73
77
|
let(:headers) { double('headers') }
|
74
78
|
before do
|
75
|
-
|
79
|
+
connection = double('Connection').as_null_object
|
80
|
+
allow(Faraday).to receive(:new).and_return(connection)
|
81
|
+
allow(connection).to receive(:headers).and_return(headers)
|
76
82
|
end
|
77
83
|
|
78
84
|
it 'sets Content-Type header' do
|
79
85
|
expect(headers).to receive(:[]=).once.with('Content-Type', 'application/json')
|
80
86
|
expect(headers).to receive(:[]=).once.with('Authorization', 'Bearer token')
|
81
|
-
|
87
|
+
Springboard::Client.new(base_url, token: 'token')
|
82
88
|
end
|
83
89
|
end
|
84
90
|
end
|
@@ -110,26 +116,29 @@ describe Springboard::Client do
|
|
110
116
|
end
|
111
117
|
|
112
118
|
describe "debug=" do
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
119
|
+
it "should set opts[:debug]" do
|
120
|
+
logger = double
|
121
|
+
allow(Logger).to receive(:new).with('/path/to/log').and_return(logger)
|
122
|
+
|
123
|
+
client.debug = '/path/to/log'
|
124
|
+
expect(client.__send__(:opts)[:debug]).to eq('/path/to/log')
|
118
125
|
end
|
119
126
|
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
127
|
+
it "should reconfigure connection" do
|
128
|
+
logger = double
|
129
|
+
allow(Logger).to receive(:new).with('/path/to/log').and_return(logger)
|
130
|
+
|
131
|
+
expect(client).to receive(:configure_connection!)
|
132
|
+
client.debug = '/path/to/log'
|
125
133
|
end
|
126
134
|
end
|
127
135
|
|
128
136
|
[:get, :head, :delete].each do |method|
|
129
137
|
bang_method = "#{method}!"
|
130
138
|
describe method do
|
131
|
-
it "should call
|
132
|
-
expect(
|
139
|
+
it "should call connection's #{method}" do
|
140
|
+
expect(connection).to receive(method).with('relative/path')
|
141
|
+
|
133
142
|
client.__send__(method, '/relative/path')
|
134
143
|
end
|
135
144
|
|
@@ -157,7 +166,7 @@ describe Springboard::Client do
|
|
157
166
|
it "should raise an exception on failure" do
|
158
167
|
response = double(Springboard::Client::Response)
|
159
168
|
expect(response).to receive(:success?).and_return(false)
|
160
|
-
expect(response).to receive(:
|
169
|
+
expect(response).to receive(:status).and_return(404)
|
161
170
|
expect(client).to receive(method).with('/path', false).and_return(response)
|
162
171
|
expect { client.send(bang_method, '/path') }.to raise_error(Springboard::Client::RequestFailed)
|
163
172
|
end
|
@@ -168,8 +177,12 @@ describe Springboard::Client do
|
|
168
177
|
[:put, :post].each do |method|
|
169
178
|
bang_method = "#{method}!"
|
170
179
|
describe method do
|
171
|
-
it "should call
|
172
|
-
|
180
|
+
it "should call connection's #{method}" do
|
181
|
+
request = double.as_null_object
|
182
|
+
|
183
|
+
expect(request).to receive(:body=).with('body')
|
184
|
+
expect(connection).to receive(method).with('relative/path').and_yield(request)
|
185
|
+
|
173
186
|
client.__send__(method, '/relative/path', 'body')
|
174
187
|
end
|
175
188
|
|
@@ -180,8 +193,12 @@ describe Springboard::Client do
|
|
180
193
|
end
|
181
194
|
|
182
195
|
it "should serialize the request body as JSON if it is a hash" do
|
196
|
+
request = double.as_null_object
|
183
197
|
body_hash = {:key1 => 'val1', :key2 => 'val2'}
|
184
|
-
|
198
|
+
|
199
|
+
expect(connection).to receive(method).and_yield(request)
|
200
|
+
expect(request).to receive(:body=).with(body_hash.to_json)
|
201
|
+
|
185
202
|
client.__send__(method, '/path', body_hash)
|
186
203
|
end
|
187
204
|
|
@@ -211,7 +228,7 @@ describe Springboard::Client do
|
|
211
228
|
it "should raise an exception on failure" do
|
212
229
|
response = double(Springboard::Client::Response)
|
213
230
|
expect(response).to receive(:success?).and_return(false)
|
214
|
-
expect(response).to receive(:
|
231
|
+
expect(response).to receive(:status).and_return(404)
|
215
232
|
expect(client).to receive(method).with('/path', 'body', false).and_return(response)
|
216
233
|
expect { client.send(bang_method, '/path', 'body') }.to raise_error { |error|
|
217
234
|
expect(error).to be_a(Springboard::Client::RequestFailed)
|
data/springboard-retail.gemspec
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'springboard-retail'
|
3
|
-
s.version = '
|
3
|
+
s.version = '5.0.0.beta1'
|
4
4
|
s.platform = Gem::Platform::RUBY
|
5
5
|
s.authors = ['Jay Stotz']
|
6
6
|
s.summary = 'Springboard Retail API client library'
|
7
7
|
|
8
8
|
s.required_rubygems_version = '>= 1.3.6'
|
9
9
|
|
10
|
-
s.add_runtime_dependency '
|
10
|
+
s.add_runtime_dependency 'faraday'
|
11
11
|
s.add_runtime_dependency 'json', '>= 1.7.4'
|
12
12
|
s.add_runtime_dependency 'hashie'
|
13
13
|
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: springboard-retail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.0.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jay Stotz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: faraday
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0
|
19
|
+
version: '0'
|
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
|
-
version: 0
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: json
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -90,13 +90,14 @@ files:
|
|
90
90
|
- vendor/cache/crack-0.4.2.gem
|
91
91
|
- vendor/cache/diff-lcs-1.2.5.gem
|
92
92
|
- vendor/cache/docile-1.1.5.gem
|
93
|
+
- vendor/cache/faraday-0.15.3.gem
|
93
94
|
- vendor/cache/hashie-3.6.0.gem
|
94
95
|
- vendor/cache/json-2.1.0.gem
|
95
96
|
- vendor/cache/method_source-0.8.2.gem
|
96
97
|
- vendor/cache/mime-types-2.4.3.gem
|
97
98
|
- vendor/cache/multi_json-1.11.0.gem
|
99
|
+
- vendor/cache/multipart-post-2.0.0.gem
|
98
100
|
- vendor/cache/netrc-0.10.3.gem
|
99
|
-
- vendor/cache/patron-0.4.18.gem
|
100
101
|
- vendor/cache/pry-0.10.1.gem
|
101
102
|
- vendor/cache/rake-10.4.2.gem
|
102
103
|
- vendor/cache/rest-client-1.7.3.gem
|
Binary file
|