looksist 0.1.0 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4692f5e6e9889da65c8102e96df4c6568bc055d6
4
- data.tar.gz: c29a30d638075b5b1c8ea4640eb0150d6835eb83
3
+ metadata.gz: 7699db1f029bfd6f15c34c647b972ad4ff8a7a55
4
+ data.tar.gz: e2131d4bd14186ccdcf5993204e8d0e6f9abdc06
5
5
  SHA512:
6
- metadata.gz: 0a9842bcb7941d3647be3ae3ab274665ddf8442a831499fc73b49b35e4023277c2b4f72a04af91e8c7db3a754afa8c6d5c84a0221db7db180133d9d429987575
7
- data.tar.gz: 7a51b99b6bdd7c1e526408618cd780f3f336cd6e47ae3eeeed37433116ef124513d77b49be4289cbf8cdb21b6009c5d3aef8259cb399dfa836e2ca6b3a6e178d
6
+ metadata.gz: 13060ecc41d9c3c2d306f7b5e5cb18ea988afce19c0b4b9c6dd33399f9fadaa865788b92feffc735cbf247374338a00c1e766c88ff35e65b2b78d37715638187
7
+ data.tar.gz: 1d897d919454bd425738421ac0042ea4279f4e24ba00a4619d4683a8ffe22dbfa24518413858951e14c7f2ebbf87511f00ce68de40f22fd6c3c7c10bcd958bab
@@ -43,6 +43,7 @@ module Looksist
43
43
  end
44
44
 
45
45
  def inject_attributes_at(hash_offset, opts)
46
+ return nil unless hash_offset
46
47
  keys = hash_offset[opts[:using]]
47
48
  entity_name = entity(opts[:using])
48
49
  values = Looksist.redis_service.send("#{entity_name}_for", keys)
@@ -1,3 +1,3 @@
1
1
  module Lookist
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
@@ -110,7 +110,7 @@ describe Looksist::Hashed do
110
110
  inject after: :metrics, at: '$.table.inner_table', using: :employee_id, populate: :employee_name
111
111
  end
112
112
 
113
- expect(@mock).to receive(:mget).with(['employees/10', 'employees/20']).and_return(['emp 1', 'emp 2'])
113
+ expect(@mock).to receive(:mget).with(%w(employees/10 employees/20)).and_return(['emp 1', 'emp 2'])
114
114
 
115
115
  expect(DeepHash.new.metrics).to eq({table: {
116
116
  inner_table: {
@@ -135,7 +135,7 @@ describe Looksist::Hashed do
135
135
  inject after: :metrics, at: :table, using: :employee_id, populate: :employee_name
136
136
  end
137
137
 
138
- expect(@mock).to receive(:mget).with(['employees/1', 'employees/2']).and_return(['emp 1', 'emp 2'])
138
+ expect(@mock).to receive(:mget).with(%w(employees/1 employees/2)).and_return(['emp 1', 'emp 2'])
139
139
 
140
140
  expect(HashService1.new.metrics).to eq({table: {
141
141
  employee_id: [1, 2],
@@ -160,9 +160,9 @@ describe Looksist::Hashed do
160
160
  inject after: :metrics, at: :table, using: :employer_id, populate: :employer_name
161
161
  end
162
162
 
163
- expect(@mock).to receive(:mget).with(['employees/5', 'employees/6']).and_return(['emp 5', 'emp 6'])
163
+ expect(@mock).to receive(:mget).with(%w(employees/5 employees/6)).and_return(['emp 5', 'emp 6'])
164
164
 
165
- expect(@mock).to receive(:mget).with(['employers/3', 'employers/4']).and_return(['empr 3', 'empr 4'])
165
+ expect(@mock).to receive(:mget).with(%w(employers/3 employers/4)).and_return(['empr 3', 'empr 4'])
166
166
 
167
167
  expect(HashService.new.metrics).to eq({table: {
168
168
  employee_id: [5, 6],
@@ -192,9 +192,9 @@ describe Looksist::Hashed do
192
192
  inject after: :metrics, at: '$.table.database', using: :employer_id, populate: :employer_name
193
193
  end
194
194
 
195
- expect(@mock).to receive(:mget).with(['employees/15', 'employees/16']).and_return(['emp 15', 'emp 16'])
195
+ expect(@mock).to receive(:mget).with(%w(employees/15 employees/16)).and_return(['emp 15', 'emp 16'])
196
196
 
197
- expect(@mock).to receive(:mget).with(['employers/13', 'employers/14']).and_return(['empr 13', 'empr 14'])
197
+ expect(@mock).to receive(:mget).with(%w(employers/13 employers/14)).and_return(['empr 13', 'empr 14'])
198
198
 
199
199
  expect(EmployeeHash.new.metrics).to eq({table: {
200
200
  database: {
@@ -206,6 +206,41 @@ describe Looksist::Hashed do
206
206
  }})
207
207
  end
208
208
 
209
+ context 'handle no data' do
210
+ it 'should not inject when data is not available' do
211
+ class EmptyResponse
212
+ include Looksist
213
+ def empty
214
+ {}
215
+ end
216
+ inject after: :empty, at: :'$.table', using: :subcat_id, populate: :sub_cat_name
217
+ end
218
+ expect(EmptyResponse.new.empty).to eq({})
219
+ end
220
+
221
+ it 'should be capable to deep lookup and inject' do
222
+ class EmptyMenu
223
+ include Looksist
224
+
225
+ def metrics
226
+ {
227
+ table: {
228
+ menu: []
229
+ }
230
+ }
231
+ end
232
+
233
+ inject after: :metrics, at: '$.table.menu', using: :item_id, populate: :item_name
234
+ end
235
+
236
+ expect(EmptyMenu.new.metrics).to eq({
237
+ table: {
238
+ menu: []
239
+ }
240
+ })
241
+ end
242
+ end
243
+
209
244
 
210
245
  context 'multiple methods and injections' do
211
246
  it 'should inject multiple attribute to an existing hash' do
@@ -232,9 +267,9 @@ describe Looksist::Hashed do
232
267
  inject after: :stock, at: :table, using: :dc_id, populate: :dc_name
233
268
  end
234
269
 
235
- expect(@mock).to receive(:mget).with(['shrinks/1', 'shrinks/2']).and_return(['shrink 1', 'shrink 2'])
270
+ expect(@mock).to receive(:mget).with(%w(shrinks/1 shrinks/2)).and_return(['shrink 1', 'shrink 2'])
236
271
 
237
- expect(@mock).to receive(:mget).with(['dcs/7', 'dcs/8']).and_return(['dc 7', 'dc 8'])
272
+ expect(@mock).to receive(:mget).with(%w(dcs/7 dcs/8)).and_return(['dc 7', 'dc 8'])
238
273
 
239
274
  hash_service_super = HashServiceSuper.new
240
275
  expect(hash_service_super.shrinkage).to eq({table: {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: looksist
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - RC