restful_resource 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,13 +2,13 @@ require_relative '../spec_helper'
2
2
 
3
3
  RSpec.describe RestfulResource::Base do
4
4
  before do
5
- @mock_http = double("mock_http")
6
- allow(RestfulResource::Base).to receive(:http).and_return(@mock_http)
7
- RestfulResource::Base.configure(base_url: 'http://api.carwow.co.uk/')
5
+ @mock_http = double('mock_http')
6
+ allow(described_class).to receive(:http).and_return(@mock_http)
7
+ described_class.configure(base_url: 'http://api.carwow.co.uk/')
8
8
  end
9
9
 
10
- it "should act as an openobject" do
11
- object = RestfulResource::Base.new(name: 'David', surname: 'Santoro')
10
+ it 'acts as an openobject' do
11
+ object = described_class.new(name: 'David', surname: 'Santoro')
12
12
 
13
13
  expect(object.name).to eq 'David'
14
14
  expect(object.surname).to eq 'Santoro'
@@ -16,15 +16,15 @@ RSpec.describe RestfulResource::Base do
16
16
  end
17
17
 
18
18
  describe '#parse_json' do
19
- it 'should not fail on empty string' do
20
- expect {RestfulResource::Base.send(:parse_json, ' ')}.not_to raise_error
19
+ it 'does not fail on empty string' do
20
+ expect { described_class.send(:parse_json, ' ') }.not_to raise_error
21
21
  end
22
22
  end
23
23
 
24
- describe "#find" do
25
- it "should return an object instance for the correct id" do
26
- expected_response = RestfulResource::Response.new(body: {id: 12}.to_json)
27
- expect_get("http://api.carwow.co.uk/makes/12", expected_response)
24
+ describe '#find' do
25
+ it 'returns an object instance for the correct id' do
26
+ expected_response = RestfulResource::Response.new(body: { id: 12 }.to_json)
27
+ expect_get('http://api.carwow.co.uk/makes/12', expected_response)
28
28
 
29
29
  object = Make.find(12)
30
30
 
@@ -32,56 +32,58 @@ RSpec.describe RestfulResource::Base do
32
32
  expect(object.id).to be 12
33
33
  end
34
34
 
35
- it "should return an object instance for nested routes" do
36
- expected_response = RestfulResource::Response.new(body: {name: 'Golf', price: 15000}.to_json)
37
- expect_get("http://api.carwow.co.uk/groups/15/makes/Volkswagen/models/Golf", expected_response)
35
+ it 'returns an object instance for nested routes' do
36
+ expected_response = RestfulResource::Response.new(body: { name: 'Golf', price: 15_000 }.to_json)
37
+ expect_get('http://api.carwow.co.uk/groups/15/makes/Volkswagen/models/Golf', expected_response)
38
38
 
39
39
  object = Model.find('Golf', make_slug: 'Volkswagen', group_id: 15)
40
40
 
41
41
  expect(object).not_to be_nil
42
42
  expect(object.name).to eq 'Golf'
43
- expect(object.price).to eq 15000
43
+ expect(object.price).to eq 15_000
44
44
  end
45
45
 
46
- it "should encode parameters correctly in the url" do
47
- expected_response = RestfulResource::Response.new(body: {name: 'Golf', price: 15000}.to_json)
48
- expect_get("http://api.carwow.co.uk/groups/xxx+yyy%3Fl%3D7/makes/Land+Rover%3Fx%3D0.123/models/Golf+Cabriolet%3Ftest", expected_response)
46
+ it 'encodes parameters correctly in the url' do
47
+ expected_response = RestfulResource::Response.new(body: { name: 'Golf', price: 15_000 }.to_json)
48
+ expect_get('http://api.carwow.co.uk/groups/xxx+yyy%3Fl%3D7/makes/Land+Rover%3Fx%3D0.123/models/Golf+Cabriolet%3Ftest', expected_response)
49
49
 
50
50
  object = Model.find('Golf Cabriolet?test', make_slug: 'Land Rover?x=0.123', group_id: 'xxx yyy?l=7')
51
51
  end
52
52
 
53
53
  it 'accepts custom headers' do
54
- expect_get("http://api.carwow.co.uk/makes/12",
54
+ expect_get('http://api.carwow.co.uk/makes/12',
55
55
  RestfulResource::Response.new,
56
- headers: { cache_control: 'no-cache' })
56
+ headers: { cache_control: 'no-cache' }
57
+ )
57
58
 
58
59
  Make.find(12, headers: { cache_control: 'no-cache' })
59
60
  end
60
61
 
61
62
  it 'accepts no_cache option' do
62
- expect_get("http://api.carwow.co.uk/makes/12",
63
+ expect_get('http://api.carwow.co.uk/makes/12',
63
64
  RestfulResource::Response.new,
64
- headers: { cache_control: 'no-cache' })
65
+ headers: { cache_control: 'no-cache' }
66
+ )
65
67
 
66
68
  Make.find(12, no_cache: true)
67
69
  end
68
70
  end
69
71
 
70
- describe "#where" do
71
- it "should return an array of objects" do
72
- expected_response = RestfulResource::Response.new(body: [{name: 'Golf', price: 15000}, {name: 'Polo', price: 11000}].to_json)
73
- expect_get("http://api.carwow.co.uk/groups/15/makes/Volkswagen/models?on_sale=true", expected_response)
72
+ describe '#where' do
73
+ it 'returns an array of objects' do
74
+ expected_response = RestfulResource::Response.new(body: [{ name: 'Golf', price: 15_000 }, { name: 'Polo', price: 11_000 }].to_json)
75
+ expect_get('http://api.carwow.co.uk/groups/15/makes/Volkswagen/models?on_sale=true', expected_response)
74
76
  object = Model.where(make_slug: 'Volkswagen', on_sale: true, group_id: 15)
75
77
 
76
78
  expect(object).not_to be_nil
77
79
  expect(object.length).to eq 2
78
80
  expect(object.first.name).to eq 'Golf'
79
- expect(object.first.price).to eq 15000
81
+ expect(object.first.price).to eq 15_000
80
82
  end
81
83
 
82
- it "should provide a paginated result if response contains rest pagination headers" do
83
- expected_response = response_with_page_information()
84
- expect_get("http://api.carwow.co.uk/groups/15/makes/Volkswagen/models", expected_response)
84
+ it 'provides a paginated result if response contains rest pagination headers' do
85
+ expected_response = response_with_page_information
86
+ expect_get('http://api.carwow.co.uk/groups/15/makes/Volkswagen/models', expected_response)
85
87
 
86
88
  models = Model.where(group_id: 15, make_slug: 'Volkswagen')
87
89
 
@@ -92,26 +94,28 @@ RSpec.describe RestfulResource::Base do
92
94
  end
93
95
 
94
96
  it 'accepts custom headers' do
95
- expect_get("http://api.carwow.co.uk/groups/15/makes/Volkswagen/models?on_sale=true",
97
+ expect_get('http://api.carwow.co.uk/groups/15/makes/Volkswagen/models?on_sale=true',
96
98
  RestfulResource::Response.new,
97
- headers: { cache_control: 'no-cache' })
99
+ headers: { cache_control: 'no-cache' }
100
+ )
98
101
 
99
102
  Model.where(make_slug: 'Volkswagen', on_sale: true, group_id: 15, headers: { cache_control: 'no-cache' })
100
103
  end
101
104
 
102
105
  it 'accepts no_cache option' do
103
- expect_get("http://api.carwow.co.uk/groups/15/makes/Volkswagen/models?on_sale=true",
106
+ expect_get('http://api.carwow.co.uk/groups/15/makes/Volkswagen/models?on_sale=true',
104
107
  RestfulResource::Response.new,
105
- headers: { cache_control: 'no-cache' })
108
+ headers: { cache_control: 'no-cache' }
109
+ )
106
110
 
107
111
  Model.where(make_slug: 'Volkswagen', on_sale: true, group_id: 15, no_cache: true)
108
112
  end
109
113
  end
110
114
 
111
- describe "#all" do
112
- it "should return all items" do
113
- expected_response = RestfulResource::Response.new(body: [{name: 'Volkswagen'}, {name: 'Audi'}].to_json)
114
- expect_get("http://api.carwow.co.uk/makes", expected_response)
115
+ describe '#all' do
116
+ it 'returns all items' do
117
+ expected_response = RestfulResource::Response.new(body: [{ name: 'Volkswagen' }, { name: 'Audi' }].to_json)
118
+ expect_get('http://api.carwow.co.uk/makes', expected_response)
115
119
  makes = Make.all
116
120
 
117
121
  expect(makes).not_to be_nil
@@ -120,47 +124,49 @@ RSpec.describe RestfulResource::Base do
120
124
  end
121
125
 
122
126
  it 'accepts custom headers' do
123
- expect_get("http://api.carwow.co.uk/makes",
127
+ expect_get('http://api.carwow.co.uk/makes',
124
128
  RestfulResource::Response.new,
125
- headers: { cache_control: 'no-cache' })
129
+ headers: { cache_control: 'no-cache' }
130
+ )
126
131
 
127
132
  Make.all(headers: { cache_control: 'no-cache' })
128
133
  end
129
134
 
130
135
  it 'accepts no_cache option' do
131
- expect_get("http://api.carwow.co.uk/makes",
136
+ expect_get('http://api.carwow.co.uk/makes',
132
137
  RestfulResource::Response.new,
133
- headers: { cache_control: 'no-cache' })
138
+ headers: { cache_control: 'no-cache' }
139
+ )
134
140
 
135
141
  Make.all(no_cache: true)
136
142
  end
137
143
  end
138
144
 
139
- describe "#base_url" do
140
- it "should be different for each subclass of Base" do
141
- BaseA.configure(base_url: "http://a.carwow.co.uk")
145
+ describe '#base_url' do
146
+ it 'is different for each subclass of Base' do
147
+ BaseA.configure(base_url: 'http://a.carwow.co.uk')
142
148
 
143
- BaseB.configure(base_url: "http://b.carwow.co.uk")
149
+ BaseB.configure(base_url: 'http://b.carwow.co.uk')
144
150
 
145
- expect_get('http://a.carwow.co.uk/testa/1', RestfulResource::Response.new())
146
- expect_get('http://b.carwow.co.uk/testb/2', RestfulResource::Response.new())
151
+ expect_get('http://a.carwow.co.uk/testa/1', RestfulResource::Response.new)
152
+ expect_get('http://b.carwow.co.uk/testb/2', RestfulResource::Response.new)
147
153
 
148
154
  TestA.find(1)
149
155
  TestB.find(2)
150
156
  end
151
157
  end
152
158
 
153
- describe "#action" do
154
- it "should retrieve a resource using a custom action" do
155
- expect_get('http://api.carwow.co.uk/makes/15/lazy', RestfulResource::Response.new(body: {name: 'Volk.'}.to_json))
159
+ describe '#action' do
160
+ it 'retrieves a resource using a custom action' do
161
+ expect_get('http://api.carwow.co.uk/makes/15/lazy', RestfulResource::Response.new(body: { name: 'Volk.' }.to_json))
156
162
 
157
163
  make = Make.action(:lazy).find(15)
158
164
 
159
165
  expect(make.name).to eq 'Volk.'
160
166
  end
161
167
 
162
- it 'should retrieve many resources using a custom action' do
163
- expect_get('http://api.carwow.co.uk/makes/available', RestfulResource::Response.new(body: [{name: 'Audi'}, {name: 'Fiat'}].to_json))
168
+ it 'retrieves many resources using a custom action' do
169
+ expect_get('http://api.carwow.co.uk/makes/available', RestfulResource::Response.new(body: [{ name: 'Audi' }, { name: 'Fiat' }].to_json))
164
170
 
165
171
  make = Make.action(:available).all
166
172
 
@@ -169,36 +175,38 @@ RSpec.describe RestfulResource::Base do
169
175
  end
170
176
  end
171
177
 
172
- describe "#get" do
173
- it "should return an open_object" do
174
- expected_response = RestfulResource::Response.new(body: {average_score: 4.3}.to_json, status: 200)
178
+ describe '#get' do
179
+ it 'returns an open_object' do
180
+ expected_response = RestfulResource::Response.new(body: { average_score: 4.3 }.to_json, status: 200)
175
181
  expect_get('http://api.carwow.co.uk/makes/average_score?make_slug%5B%5D=Volkswagen&make_slug%5B%5D=Audi', expected_response)
176
182
 
177
- object = Make.action(:average_score).get(make_slug: ['Volkswagen', 'Audi'])
183
+ object = Make.action(:average_score).get(make_slug: %w[Volkswagen Audi])
178
184
 
179
185
  expect(object.average_score).to eq 4.3
180
186
  end
181
187
 
182
188
  it 'accepts custom headers' do
183
- expect_get("http://api.carwow.co.uk/makes/average_score",
189
+ expect_get('http://api.carwow.co.uk/makes/average_score',
184
190
  RestfulResource::Response.new,
185
- headers: { cache_control: 'no-cache' })
191
+ headers: { cache_control: 'no-cache' }
192
+ )
186
193
 
187
194
  Make.action(:average_score).get(headers: { cache_control: 'no-cache' })
188
195
  end
189
196
 
190
197
  it 'accepts no_cache option' do
191
- expect_get("http://api.carwow.co.uk/makes/average_score",
198
+ expect_get('http://api.carwow.co.uk/makes/average_score',
192
199
  RestfulResource::Response.new,
193
- headers: { cache_control: 'no-cache' })
200
+ headers: { cache_control: 'no-cache' }
201
+ )
194
202
 
195
203
  Make.action(:average_score).get(no_cache: true)
196
204
  end
197
205
  end
198
206
 
199
- describe "#put" do
200
- it 'should put no data with no params' do
201
- expected_response = RestfulResource::Response.new(body: {name: 'Audi'}.to_json, status: 200)
207
+ describe '#put' do
208
+ it 'puts no data with no params' do
209
+ expected_response = RestfulResource::Response.new(body: { name: 'Audi' }.to_json, status: 200)
202
210
  expect_put('http://api.carwow.co.uk/makes/1', expected_response)
203
211
 
204
212
  object = Make.put(1)
@@ -206,8 +214,8 @@ RSpec.describe RestfulResource::Base do
206
214
  expect(object.name).to eq 'Audi'
207
215
  end
208
216
 
209
- it 'should put no data with no params passed' do
210
- expected_response = RestfulResource::Response.new(body: {name: 'Audi'}.to_json, status: 200)
217
+ it 'puts no data with no params passed' do
218
+ expected_response = RestfulResource::Response.new(body: { name: 'Audi' }.to_json, status: 200)
211
219
  expect_put('http://api.carwow.co.uk/makes/1?make_slug=Volkswagen', expected_response)
212
220
 
213
221
  object = Make.put(1, make_slug: 'Volkswagen')
@@ -215,21 +223,21 @@ RSpec.describe RestfulResource::Base do
215
223
  expect(object.name).to eq 'Audi'
216
224
  end
217
225
 
218
- it 'should put data with params passed' do
219
- data = {make_slug: 'Audi'}
226
+ it 'puts data with params passed' do
227
+ data = { make_slug: 'Audi' }
220
228
 
221
- expected_response = RestfulResource::Response.new(body: {name: 'Audi'}.to_json, status: 200)
229
+ expected_response = RestfulResource::Response.new(body: { name: 'Audi' }.to_json, status: 200)
222
230
  expect_put('http://api.carwow.co.uk/makes/1', expected_response, data: data)
223
231
 
224
- object = Make.put(1, data: {make_slug: 'Audi'})
232
+ object = Make.put(1, data: { make_slug: 'Audi' })
225
233
 
226
234
  expect(object.name).to eq 'Audi'
227
235
  end
228
236
 
229
- it 'should put data with params passed' do
230
- data = {make_slug: 'Audi'}
237
+ it 'puts data with params passed' do
238
+ data = { make_slug: 'Audi' }
231
239
 
232
- expected_response = RestfulResource::Response.new(body: {name: 'Audi'}.to_json, status: 200)
240
+ expected_response = RestfulResource::Response.new(body: { name: 'Audi' }.to_json, status: 200)
233
241
  expect_put('http://api.carwow.co.uk/makes/1?make_slug=Volkswagen', expected_response, data: data)
234
242
 
235
243
  object = Make.put(1, data: data, make_slug: 'Volkswagen')
@@ -238,17 +246,18 @@ RSpec.describe RestfulResource::Base do
238
246
  end
239
247
 
240
248
  it 'accepts custom headers' do
241
- expect_put("http://api.carwow.co.uk/makes/1",
249
+ expect_put('http://api.carwow.co.uk/makes/1',
242
250
  RestfulResource::Response.new,
243
- headers: { accept: 'application/json' })
251
+ headers: { accept: 'application/json' }
252
+ )
244
253
 
245
254
  Make.put(1, data: {}, headers: { accept: 'application/json' })
246
255
  end
247
256
  end
248
257
 
249
- describe "#post" do
250
- it "should post parameters to the collection url" do
251
- data = {slug: 'audi-make', name: 'Audi', num_of_cars: 3}
258
+ describe '#post' do
259
+ it 'posts parameters to the collection url' do
260
+ data = { slug: 'audi-make', name: 'Audi', num_of_cars: 3 }
252
261
 
253
262
  expected_response = RestfulResource::Response.new(body: data.to_json, status: 200)
254
263
  expect_post('http://api.carwow.co.uk/makes', expected_response, data: data)
@@ -260,17 +269,18 @@ RSpec.describe RestfulResource::Base do
260
269
  end
261
270
 
262
271
  it 'accepts custom headers' do
263
- expect_post("http://api.carwow.co.uk/makes",
272
+ expect_post('http://api.carwow.co.uk/makes',
264
273
  RestfulResource::Response.new,
265
- headers: { accept: 'application/json' })
274
+ headers: { accept: 'application/json' }
275
+ )
266
276
 
267
277
  Make.post(data: {}, headers: { accept: 'application/json' })
268
278
  end
269
279
  end
270
280
 
271
- describe "#delete" do
272
- it "should delete to the member url" do
273
- expected_response = RestfulResource::Response.new(body: {deleted: true}.to_json, status: 200)
281
+ describe '#delete' do
282
+ it 'deletes to the member url' do
283
+ expected_response = RestfulResource::Response.new(body: { deleted: true }.to_json, status: 200)
274
284
  expect_delete('http://api.carwow.co.uk/makes/1', expected_response)
275
285
 
276
286
  object = Make.delete(1)
@@ -279,68 +289,75 @@ RSpec.describe RestfulResource::Base do
279
289
  end
280
290
 
281
291
  it 'accepts custom headers' do
282
- expect_delete("http://api.carwow.co.uk/makes/1",
292
+ expect_delete('http://api.carwow.co.uk/makes/1',
283
293
  RestfulResource::Response.new,
284
- headers: { accept: 'application/json' })
294
+ headers: { accept: 'application/json' }
295
+ )
285
296
 
286
297
  Make.delete(1, headers: { accept: 'application/json' })
287
298
  end
288
299
  end
289
300
 
290
- describe ".as_json" do
291
- before :each do
292
- expected_response = RestfulResource::Response.new(body: [{name: 'Audi', slug: 'Audi-Slug'}, {name: 'Fiat', slug: 'Fiat-Slug'}].to_json)
301
+ describe '.as_json' do
302
+ before do
303
+ expected_response = RestfulResource::Response.new(body: [{ name: 'Audi', slug: 'Audi-Slug' }, { name: 'Fiat', slug: 'Fiat-Slug' }].to_json)
293
304
  expect_get('http://api.carwow.co.uk/makes', expected_response)
294
305
 
295
306
  @makes = Make.all
296
307
  end
297
308
 
298
- it 'should not return inner object table' do
299
- expect(@makes.first.as_json).to eq ({'name' => 'Audi', 'slug' => 'Audi-Slug'})
309
+ it 'does not return inner object table' do
310
+ expect(@makes.first.as_json).to eq ({ 'name' => 'Audi', 'slug' => 'Audi-Slug' })
300
311
  end
301
312
 
302
- it 'should return inner object table on selected fields' do
303
- expect(@makes.last.as_json(only: [:name])).to eq ({'name' => 'Fiat'})
313
+ it 'returns inner object table on selected fields' do
314
+ expect(@makes.last.as_json(only: [:name])).to eq ({ 'name' => 'Fiat' })
304
315
  end
305
316
  end
306
317
 
307
- describe ".member_url" do
308
- it "requires a member ID" do
309
- expect{ RestfulResource::Base.member_url('', {}) }.to raise_error(RestfulResource::ResourceIdMissingError)
318
+ describe '.member_url' do
319
+ it 'requires a member ID' do
320
+ expect { described_class.member_url('', {}) }.to raise_error(RestfulResource::ResourceIdMissingError)
310
321
  end
311
322
  end
312
323
 
313
- describe ".configure" do
314
- let(:username) { double }
315
- let(:password) { double }
316
- let(:auth_token) { double }
317
- let(:logger) { double }
318
- let(:cache_store) { double }
319
- let(:instrumentation) { double }
320
- let(:faraday_config) { double }
321
-
322
- it "passes arguments to HttpClient" do
324
+ describe '.configure' do
325
+ let(:username) { double }
326
+ let(:password) { double }
327
+ let(:auth_token) { double }
328
+ let(:logger) { double }
329
+ let(:cache_store) { double }
330
+ let(:instrumentation) { double }
331
+ let(:faraday_config) { double }
332
+ let(:faraday_options) { double }
333
+
334
+ it 'passes arguments to HttpClient' do
323
335
  expect(RestfulResource::HttpClient).to receive(:new).with(username: username,
324
336
  password: password,
325
337
  auth_token: auth_token,
326
338
  logger: logger,
327
339
  cache_store: cache_store,
328
340
  instrumentation: instrumentation,
329
- faraday_config: faraday_config)
330
-
331
- RestfulResource::Base.configure(base_url: 'http://foo.bar',
332
- username: username,
333
- password: password,
334
- auth_token: auth_token,
335
- logger: logger,
336
- cache_store: cache_store,
337
- instrumentation: instrumentation,
338
- faraday_config: faraday_config)
341
+ faraday_config: faraday_config,
342
+ faraday_options: faraday_options
343
+ )
344
+
345
+ described_class.configure(base_url: 'http://foo.bar',
346
+ username: username,
347
+ password: password,
348
+ auth_token: auth_token,
349
+ logger: logger,
350
+ cache_store: cache_store,
351
+ instrumentation: instrumentation,
352
+ faraday_config: faraday_config,
353
+ faraday_options: faraday_options
354
+ )
339
355
  end
340
356
  end
341
357
 
342
358
  def response_with_page_information
343
- RestfulResource::Response.new(body: [{ id: 1, name: 'Golf'}, { id: 2, name: 'Polo' }].to_json,
344
- headers: { links: '<http://api.carwow.co.uk/makes/Volkswagen/models.json?page=6>;rel="last",<http://api.carwow.co.uk/makes/Volkswagen/models.json?page=2>;rel="next"'})
359
+ RestfulResource::Response.new(body: [{ id: 1, name: 'Golf' }, { id: 2, name: 'Polo' }].to_json,
360
+ headers: { links: '<http://api.carwow.co.uk/makes/Volkswagen/models.json?page=6>;rel="last",<http://api.carwow.co.uk/makes/Volkswagen/models.json?page=2>;rel="next"' }
361
+ )
345
362
  end
346
363
  end
@@ -2,21 +2,19 @@ require_relative '../spec_helper'
2
2
 
3
3
  describe RestfulResource::HttpClient do
4
4
  def find_middleware(adapter, name)
5
- adapter.builder.handlers.find {|m| m.name == name }
6
-
7
- rescue
8
- raise "Could not find Faraday middleware: #{name}"
5
+ adapter.builder.handlers.find { |m| m.name == name }
6
+ rescue StandardError
7
+ raise "Could not find Faraday middleware: #{name}"
9
8
  end
10
9
 
11
10
  def find_middleware_args(adapter, name)
12
- find_middleware(adapter, name).instance_variable_get("@args").first
13
-
14
- rescue
15
- raise "Could not find args for Faraday middleware: #{name}"
11
+ find_middleware(adapter, name).instance_variable_get('@args').first
12
+ rescue StandardError
13
+ raise "Could not find args for Faraday middleware: #{name}"
16
14
  end
17
15
 
18
16
  describe 'Configuration' do
19
- let(:connection) { described_class.new.instance_variable_get("@connection") }
17
+ let(:connection) { described_class.new.instance_variable_get('@connection') }
20
18
  let(:middleware) { connection.builder.handlers }
21
19
 
22
20
  describe 'Builder configuration' do
@@ -48,7 +46,7 @@ describe RestfulResource::HttpClient do
48
46
  end
49
47
 
50
48
  context 'with an api_name' do
51
- let(:connection) { described_class.new(instrumentation: { api_name: 'my_api_name'}).instance_variable_get("@connection") }
49
+ let(:connection) { described_class.new(instrumentation: { api_name: 'my_api_name' }).instance_variable_get('@connection') }
52
50
 
53
51
  it 'uses default instrumenter with the api_name' do
54
52
  expect(find_middleware_args(connection, 'FaradayMiddleware::Instrumentation')).to include(name: 'http.my_api_name')
@@ -56,7 +54,7 @@ describe RestfulResource::HttpClient do
56
54
  end
57
55
 
58
56
  context 'with a custom instrumentation key' do
59
- let(:connection) { described_class.new(instrumentation: { request_instrument_name: 'foo.bar'}).instance_variable_get("@connection") }
57
+ let(:connection) { described_class.new(instrumentation: { request_instrument_name: 'foo.bar' }).instance_variable_get('@connection') }
60
58
 
61
59
  it 'uses default instrumenter with the custom key' do
62
60
  expect(find_middleware_args(connection, 'FaradayMiddleware::Instrumentation')).to include(name: 'foo.bar')
@@ -66,7 +64,9 @@ describe RestfulResource::HttpClient do
66
64
  context 'with a given Metrics class' do
67
65
  class FakeMetrics
68
66
  def count(name, value); end
67
+
69
68
  def sample(name, value); end
69
+
70
70
  def measure(name, value); end
71
71
  end
72
72
 
@@ -78,7 +78,7 @@ describe RestfulResource::HttpClient do
78
78
  end
79
79
 
80
80
  it 'initializes the Instrumentation' do
81
- described_class.new(instrumentation: { app_name: 'rails', api_name: 'api', metric_class: FakeMetrics})
81
+ described_class.new(instrumentation: { app_name: 'rails', api_name: 'api', metric_class: FakeMetrics })
82
82
 
83
83
  expect(RestfulResource::Instrumentation).to have_received(:new)
84
84
  .with(app_name: 'rails',
@@ -86,11 +86,12 @@ describe RestfulResource::HttpClient do
86
86
  request_instrument_name: 'http.api',
87
87
  cache_instrument_name: 'http_cache.api',
88
88
  server_cache_instrument_name: 'cdn_metrics.api',
89
- metric_class: FakeMetrics)
89
+ metric_class: FakeMetrics
90
+ )
90
91
  end
91
92
 
92
93
  it 'subscribes to the notifications' do
93
- described_class.new(instrumentation: { app_name: 'rails', api_name: 'api', metric_class: FakeMetrics})
94
+ described_class.new(instrumentation: { app_name: 'rails', api_name: 'api', metric_class: FakeMetrics })
94
95
 
95
96
  expect(mock_instrumention).to have_received(:subscribe_to_notifications)
96
97
  end
@@ -98,7 +99,7 @@ describe RestfulResource::HttpClient do
98
99
  end
99
100
 
100
101
  describe 'when provided a logger' do
101
- let(:connection) { described_class.new(logger: logger).instance_variable_get("@connection") }
102
+ let(:connection) { described_class.new(logger: logger).instance_variable_get('@connection') }
102
103
  let(:logger) { Logger.new('/dev/null') }
103
104
 
104
105
  it 'uses the logger middleware' do
@@ -111,7 +112,7 @@ describe RestfulResource::HttpClient do
111
112
  end
112
113
 
113
114
  describe 'when provided a cache store' do
114
- let(:connection) { described_class.new(cache_store: 'redis').instance_variable_get("@connection") }
115
+ let(:connection) { described_class.new(cache_store: 'redis').instance_variable_get('@connection') }
115
116
 
116
117
  it 'uses the cache_store middleware' do
117
118
  expect(middleware).to include Faraday::HttpCache
@@ -122,7 +123,7 @@ describe RestfulResource::HttpClient do
122
123
  end
123
124
 
124
125
  context 'and an api_name is provided' do
125
- let(:connection) { described_class.new(cache_store: 'redis', instrumentation: { api_name: 'my_api_name'}).instance_variable_get("@connection") }
126
+ let(:connection) { described_class.new(cache_store: 'redis', instrumentation: { api_name: 'my_api_name' }).instance_variable_get('@connection') }
126
127
 
127
128
  it 'passes the instrumenter and the api_name' do
128
129
  expect(find_middleware_args(connection, 'Faraday::HttpCache')).to include(instrumenter: ActiveSupport::Notifications, instrument_name: 'http_cache.my_api_name')
@@ -130,7 +131,7 @@ describe RestfulResource::HttpClient do
130
131
  end
131
132
 
132
133
  context 'and a custom instrument name is provided' do
133
- let(:connection) { described_class.new(cache_store: 'redis', instrumentation: { cache_instrument_name: 'foo.bar'}).instance_variable_get("@connection") }
134
+ let(:connection) { described_class.new(cache_store: 'redis', instrumentation: { cache_instrument_name: 'foo.bar' }).instance_variable_get('@connection') }
134
135
 
135
136
  it 'passes the instrumenter to the http cache middleware' do
136
137
  expect(find_middleware_args(connection, 'Faraday::HttpCache')).to include(instrumenter: ActiveSupport::Notifications, instrument_name: 'foo.bar')
@@ -142,7 +143,7 @@ describe RestfulResource::HttpClient do
142
143
  let(:faraday_config_block) do
143
144
  proc { |conn| @block_arg = conn }
144
145
  end
145
- let(:connection) { described_class.new(faraday_config: faraday_config_block).instance_variable_get("@connection") }
146
+ let(:connection) { described_class.new(faraday_config: faraday_config_block).instance_variable_get('@connection') }
146
147
 
147
148
  it 'passes faraday connection instance and calls it' do
148
149
  connection