looksist 0.3.9 → 0.3.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6738e7223eb398300b1f39bbff473a32be03e0ac
4
- data.tar.gz: e1038299efa273e12ba68e547d0a315f6126eb01
3
+ metadata.gz: 37c468cb360cd83c3a7ba117322fc4e14c45b17b
4
+ data.tar.gz: 1f0a60382362b5d5297f855ad642f8ff8c0accc6
5
5
  SHA512:
6
- metadata.gz: a264b8c03bb41a8db5821ae12fc5c33b9db7d4a991f47461764d7aebbf8adde22334461aadacb13ccc1f408be97d74c6b3dab8648c401d565165442f54e46691
7
- data.tar.gz: bcf2614b4341eaebe18b9dd043ae340919c6a0312443e0f992ce71e7ed137b6bf9179d8a64c1b261d7a4a15eeee995959f791210b31969a37d6804e0bc2fe4fb
6
+ metadata.gz: 70cd16daa9cc9ee9d4d7f2e56b1e54807036831ce91d18f0caa16f1ed86cc84eac9191aee6b59794b013789ac453c38b334ec5a29b045704f92b9e3f9a37df22
7
+ data.tar.gz: 0d1358375f898228fa6276cc11221cb05867066b87a16fad1a5d7f82b1faff14af57285cf39cd00da4ac2981090eb817fb7de7cda2c06addd4b60475af814a1e
@@ -63,8 +63,12 @@ module Looksist
63
63
  values = Looksist.redis_service.send("#{entity_name}_for", keys)
64
64
  if opt[:populate].is_a? Array
65
65
  opt[:populate].each do |elt|
66
- value_hash = values.each_with_object([]) do |i, acc|
67
- acc << JSON.parse(i || '{}').deep_symbolize_keys[elt]
66
+ if values.is_a?(Array)
67
+ value_hash = values.each_with_object([]) do |i, acc|
68
+ acc << JSON.parse(i || '{}').deep_symbolize_keys[elt]
69
+ end
70
+ else
71
+ value_hash = JSON.parse(values || '{}').deep_symbolize_keys[elt]
68
72
  end
69
73
  alias_method = find_alias(opt[:as], elt)
70
74
  hash_offset[alias_method] = value_hash
@@ -1,3 +1,3 @@
1
1
  module Lookist
2
- VERSION = '0.3.9'
2
+ VERSION = '0.3.10'
3
3
  end
@@ -151,11 +151,11 @@ describe Looksist::Hashed do
151
151
  expect(@mock).to receive(:mget).with(*%w(employees/10 employees/20)).and_return(['emp 1', 'emp 2'])
152
152
 
153
153
  expect(DeepHash.new.metrics).to eq({table: {
154
- inner_table: {
155
- employee_id: [10, 20],
156
- employee_name: ['emp 1', 'emp 2']
157
- }
158
- }})
154
+ inner_table: {
155
+ employee_id: [10, 20],
156
+ employee_name: ['emp 1', 'emp 2']
157
+ }
158
+ }})
159
159
  end
160
160
 
161
161
  it 'should inject single attribute to an existing hash' do
@@ -176,9 +176,33 @@ describe Looksist::Hashed do
176
176
  expect(@mock).to receive(:mget).with(*%w(employees/1 employees/2)).and_return(['emp 1', 'emp 2'])
177
177
 
178
178
  expect(HashService1.new.metrics).to eq({table: {
179
- employee_id: [1, 2],
180
- employee_name: ['emp 1', 'emp 2']
181
- }})
179
+ employee_id: [1, 2],
180
+ employee_name: ['emp 1', 'emp 2']
181
+ }})
182
+ end
183
+
184
+ it 'should inject single attribute to an existing hash a without array' do
185
+ class HashServiceMulti
186
+ include Looksist
187
+
188
+ def metrics
189
+ {
190
+ table: {
191
+ employee_id: 1
192
+ }
193
+ }
194
+ end
195
+
196
+ inject after: :metrics, at: :table, using: :employee_id, populate: [:employee_name, :employer_gender]
197
+ end
198
+
199
+ expect(@mock).to receive(:get).with('employees/1').and_return({employee_name: 'emp 1', employer_gender: 'F'}.to_json)
200
+
201
+ expect(HashServiceMulti.new.metrics).to eq({table: {
202
+ employee_id: 1,
203
+ employee_name: 'emp 1',
204
+ employer_gender: 'F'
205
+ }})
182
206
  end
183
207
 
184
208
  it 'should inject multiple attribute to an existing hash' do
@@ -203,11 +227,11 @@ describe Looksist::Hashed do
203
227
  expect(@mock).to receive(:mget).with(*%w(employers/3 employers/4)).and_return(['empr 3', 'empr 4'])
204
228
 
205
229
  expect(HashService.new.metrics).to eq({table: {
206
- employee_id: [5, 6],
207
- employer_id: [3, 4],
208
- employee_name: ['emp 5', 'emp 6'],
209
- employer_name: ['empr 3', 'empr 4']
210
- }})
230
+ employee_id: [5, 6],
231
+ employer_id: [3, 4],
232
+ employee_name: ['emp 5', 'emp 6'],
233
+ employer_name: ['empr 3', 'empr 4']
234
+ }})
211
235
  end
212
236
  end
213
237
 
@@ -235,13 +259,13 @@ describe Looksist::Hashed do
235
259
  expect(@mock).to receive(:mget).with(*%w(employers/13 employers/14)).and_return(['empr 13', 'empr 14'])
236
260
 
237
261
  expect(EmployeeHash.new.metrics).to eq({table: {
238
- database: {
239
- employee_id: [15, 16],
240
- employer_id: [13, 14],
241
- employee_name: ['emp 15', 'emp 16'],
242
- employer_name: ['empr 13', 'empr 14']
243
- }
244
- }})
262
+ database: {
263
+ employee_id: [15, 16],
264
+ employer_id: [13, 14],
265
+ employee_name: ['emp 15', 'emp 16'],
266
+ employer_name: ['empr 13', 'empr 14']
267
+ }
268
+ }})
245
269
  end
246
270
 
247
271
  context 'handle no data' do
@@ -324,14 +348,14 @@ describe Looksist::Hashed do
324
348
 
325
349
  hash_service_super = HashServiceSuper.new
326
350
  expect(hash_service_super.shrinkage).to eq({table: {
327
- shrink_id: [1, 2],
328
- shrink_name: ['shrink 1', 'shrink 2']
329
- }})
351
+ shrink_id: [1, 2],
352
+ shrink_name: ['shrink 1', 'shrink 2']
353
+ }})
330
354
 
331
355
  expect(hash_service_super.stock).to eq({table: {
332
- dc_id: [7, 8],
333
- dc_name: ['dc 7', 'dc 8']
334
- }})
356
+ dc_id: [7, 8],
357
+ dc_name: ['dc 7', 'dc 8']
358
+ }})
335
359
  end
336
360
  end
337
361
  end
@@ -365,11 +389,11 @@ describe Looksist::Hashed do
365
389
  expect(@mock).to receive(:mget).with(*%w(employees/10)).and_return(['emp 1'])
366
390
 
367
391
  expect(NoL2DeepHash.new.metrics).to eq({table: {
368
- inner_table: {
369
- employee_id: [10, 10],
370
- employee_name: ['emp 1', 'emp 1']
371
- }
372
- }})
392
+ inner_table: {
393
+ employee_id: [10, 10],
394
+ employee_name: ['emp 1', 'emp 1']
395
+ }
396
+ }})
373
397
  end
374
398
 
375
399
  it 'should work for first level of substitution' do
@@ -399,11 +423,11 @@ describe Looksist::Hashed do
399
423
  [
400
424
  {
401
425
  item_id: 1,
402
- item_preference:'Low'
426
+ item_preference: 'Low'
403
427
  },
404
428
  {
405
429
  item_id: 2,
406
- item_preference:'High'
430
+ item_preference: 'High'
407
431
  }
408
432
  ]
409
433
  end
@@ -417,12 +441,12 @@ describe Looksist::Hashed do
417
441
  [{
418
442
  item_id: 1,
419
443
  dish_name: 'Idly',
420
- item_preference:'Low'
444
+ item_preference: 'Low'
421
445
  },
422
446
  {
423
447
  item_id: 2,
424
448
  dish_name: 'Pongal',
425
- item_preference:'High'
449
+ item_preference: 'High'
426
450
  }]
427
451
  )
428
452
 
@@ -585,9 +609,9 @@ describe Looksist::Hashed do
585
609
  expect(@mock).to receive(:mget).once.with(*%w(items/1 items/2 items/3)).and_return(jsons)
586
610
 
587
611
  expect(ColumnarWithNil.metrics).to eq({:table => {:menu => {
588
- :item_id => [1, 2, 2, 1, 1, 2, 3, 3, 2, 1],
589
- :item_name => ['Rice Cake', 'Pan Cake', 'Pan Cake', 'Rice Cake', 'Rice Cake', 'Pan Cake', nil, nil, 'Pan Cake', 'Rice Cake'],
590
- :item_mnemonic => ['Idly', 'Dosa', 'Dosa', 'Idly', 'Idly', 'Dosa', nil, nil, 'Dosa', 'Idly']}}})
612
+ :item_id => [1, 2, 2, 1, 1, 2, 3, 3, 2, 1],
613
+ :item_name => ['Rice Cake', 'Pan Cake', 'Pan Cake', 'Rice Cake', 'Rice Cake', 'Pan Cake', nil, nil, 'Pan Cake', 'Rice Cake'],
614
+ :item_mnemonic => ['Idly', 'Dosa', 'Dosa', 'Idly', 'Idly', 'Dosa', nil, nil, 'Dosa', 'Idly']}}})
591
615
 
592
616
  expect(ColumnarWithEmpty.metrics).to eq({
593
617
  table: {
@@ -600,38 +624,42 @@ describe Looksist::Hashed do
600
624
  })
601
625
  end
602
626
 
603
- it'should work for nested injection for array of hash' do
627
+ it 'should work for nested injection for array of hash' do
604
628
  class DeepLookUpAtArrayOfHash
605
629
  include Looksist
630
+
606
631
  def self.articles
607
632
  [{:articles => [{:article_id => 1, :sub_category_id => 8001, :supplier_id => 158782, :sub_family_id => 18001}]}]
608
633
  end
609
- inject after: :articles, at:'$..articles', using: :article_id, populate: :name, as: {name: 'description'}
610
- inject after: :articles, at:'$..articles', using: :sub_category_id, populate: :sub_category_name
634
+
635
+ inject after: :articles, at: '$..articles', using: :article_id, populate: :name, as: {name: 'description'}
636
+ inject after: :articles, at: '$..articles', using: :sub_category_id, populate: :sub_category_name
611
637
  end
612
638
 
613
639
  expect(@mock).to receive(:mget).once.with(*%w(articles/1)).and_return(['A'])
614
640
  expect(@mock).to receive(:mget).once.with(*%w(sub_categories/8001)).and_return(['B'])
615
641
 
616
- expect(DeepLookUpAtArrayOfHash.articles).to eq([{:articles => [{:article_id => 1, :description=> 'A', :sub_category_id => 8001,
642
+ expect(DeepLookUpAtArrayOfHash.articles).to eq([{:articles => [{:article_id => 1, :description => 'A', :sub_category_id => 8001,
617
643
  :sub_category_name => 'B',
618
644
  :supplier_id => 158782, :sub_family_id => 18001}]}])
619
645
 
620
646
  end
621
647
 
622
- it'should work for nested injection for array of hash for multiple attributes' do
648
+ it 'should work for nested injection for array of hash for multiple attributes' do
623
649
  class DeepLookUpAtArrayOfHashMultiple
624
650
  include Looksist
651
+
625
652
  def self.articles
626
653
  [{:articles => [{:article_id => 1, :sub_category_id => 8001, :supplier_id => 158782, :sub_family_id => 18001}]}]
627
654
  end
628
- inject after: :articles, at:'$..articles', using: :article_id, populate: [:name,:weight]
655
+
656
+ inject after: :articles, at: '$..articles', using: :article_id, populate: [:name, :weight]
629
657
  end
630
658
 
631
- expect(@mock).to receive(:mget).once.with(*%w(articles/1)).and_return([{name:'A', weight:1}.to_json])
659
+ expect(@mock).to receive(:mget).once.with(*%w(articles/1)).and_return([{name: 'A', weight: 1}.to_json])
632
660
 
633
- expect(DeepLookUpAtArrayOfHashMultiple.articles).to eq([{:articles => [{:article_id => 1, :name=> 'A',:weight=> 1, :sub_category_id => 8001,
634
- :supplier_id => 158782, :sub_family_id => 18001}]}])
661
+ expect(DeepLookUpAtArrayOfHashMultiple.articles).to eq([{:articles => [{:article_id => 1, :name => 'A', :weight => 1, :sub_category_id => 8001,
662
+ :supplier_id => 158782, :sub_family_id => 18001}]}])
635
663
 
636
664
  end
637
665
  end
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.3.9
4
+ version: 0.3.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - RC
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-11-06 00:00:00.000000000 Z
12
+ date: 2014-12-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -241,7 +241,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
241
241
  version: '0'
242
242
  requirements: []
243
243
  rubyforge_project:
244
- rubygems_version: 2.0.5
244
+ rubygems_version: 2.4.4
245
245
  signing_key:
246
246
  specification_version: 4
247
247
  summary: Redis backed lookup for your models