nice_hash 1.12.11 → 1.12.12

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/nice_hash.rb +42 -11
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2c48d69517e60d0888a04cec6b9fe10d26b95b78f7645f5e3213a7d7dfb90e9f
4
- data.tar.gz: 278966b1d3941031e4083cccb1fde61fe77f51cdaff5c60ee7dcf88b960d0279
3
+ metadata.gz: 9a0e597912bd0c1e3267f0e6b5889fcd737be6baccccd27a4587f08f6d6f8b63
4
+ data.tar.gz: 9a2e1cd75206b5ce890ef1a74d1617b618303d628d9c7e8ccbf641eec49c5ec2
5
5
  SHA512:
6
- metadata.gz: 4043f4f7473788c17c9d54a025d4003c92a913bad3a5e78374f40582e4d636c9a3b64b51125f3529274c787493cdfd307b2532599cfcddc5869e51dc6f611e93
7
- data.tar.gz: e7e542a1ebf41d7801c687ee87cba15c294de46a610548e859e85e7d1c98aaac7d48fb1e242a1a2acf7a898fb8299d40d07587da190051903de9dbb13e7468a8
6
+ metadata.gz: 4b6c046f3be34f532acc10632e2e4833e646615cffd6d63fbcc80d9faa915aa988eb2212d2ad3442b45c5906260dc250fda767d206b546de0ec20286e1777228
7
+ data.tar.gz: bb29455a449ad02c4fe46a1e4a7a1fb5de62d3d37fb596eb78567d5018802db7f3a8bd9c8a233737e937b4f8fb08e4d07a85fdca70f88ecf210efb2382e5ea48
@@ -407,8 +407,13 @@ class NiceHash
407
407
  unless array_pattern
408
408
  value_ret = Array.new
409
409
  value.each { |v|
410
- ret = NiceHash.generate(v, select_hash_key, expected_errors: expected_errors)
411
- ret = v if ret.kind_of?(Hash) and ret.size == 0
410
+ if v.is_a?(Hash)
411
+ ret = NiceHash.generate(v, select_hash_key, expected_errors: expected_errors)
412
+ else
413
+ ret = NiceHash.generate({doit: v}, select_hash_key, expected_errors: expected_errors)
414
+ ret = ret[:doit] if ret.is_a?(Hash) and ret.key?(:doit)
415
+ end
416
+ ret = v if ret.kind_of?(Hash) and ret.size == 0
412
417
  value_ret << ret
413
418
  }
414
419
  hashv[key] = value_ret
@@ -608,17 +613,43 @@ class NiceHash
608
613
  end
609
614
  }
610
615
  unless array_pattern or results.include?(key)
611
- i = 0
612
- value.each { |v|
613
- res = NiceHash.validate([v, select_hash_key], values[key][i], only_patterns: only_patterns)
614
- if res.size > 0
615
- results[key] = Array.new() if !results.keys.include?(key)
616
- results[key][i] = res
616
+ if value.size == 1 and values[key].size > 1
617
+ # for the case value == ['Ford|Newton|Seat'] and values == ['Ford', 'Newton', 'Ford']
618
+ i= 0
619
+ values[key].each do |v|
620
+ if value[0].is_a?(Hash)
621
+ res = NiceHash.validate([value[0], select_hash_key], v, only_patterns: only_patterns)
622
+ else
623
+ # for the case {cars: ['Ford|Newton|Seat']}
624
+ res = NiceHash.validate([{key => value[0]}, select_hash_key], {key => v}, only_patterns: only_patterns)
625
+ #res = {key => res[:doit]} if res.is_a?(Hash) and res.key?(:doit)
626
+ array_pattern = true
627
+ end
628
+ if res.size > 0
629
+ results[key] = Array.new() if !results.keys.include?(key)
630
+ results[key][i] = res
631
+ end
632
+ i += 1
617
633
  end
618
- i += 1
619
- }
634
+ else
635
+ i = 0
636
+ value.each { |v|
637
+ if v.is_a?(Hash)
638
+ res = NiceHash.validate([v, select_hash_key], values[key][i], only_patterns: only_patterns)
639
+ else
640
+ # for the case {cars: ['Ford|Newton|Seat']}
641
+ res = NiceHash.validate([{key => v}, select_hash_key], {key => values[key][i]}, only_patterns: only_patterns)
642
+ array_pattern = true
643
+ end
644
+ if res.size > 0
645
+ results[key] = Array.new() if !results.keys.include?(key)
646
+ results[key][i] = res
647
+ end
648
+ i += 1
649
+ }
650
+ end
620
651
  end
621
- unless array_pattern or only_patterns or results.include?(key) or complex_data
652
+ unless array_pattern or only_patterns or results.include?(key) or complex_data
622
653
  results[key] = false unless value == values[key]
623
654
  end
624
655
  else
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nice_hash
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.11
4
+ version: 1.12.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mario Ruiz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-20 00:00:00.000000000 Z
11
+ date: 2019-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: string_pattern