nice_hash 1.12.11 → 1.12.12

Sign up to get free protection for your applications and to get access to all the features.
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