nice_hash 1.17.2 → 1.18.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -0
- data/lib/nice/hash/add_to_ruby.rb +17 -0
- metadata +15 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db65b5feb3fcc8b21b275873835592202ac1eb6b82a27325d61f1cad19665712
|
4
|
+
data.tar.gz: a1b5014b99126979bb8bf052db0574bd4e9e02b9311b7133a21d1d0467cbcd05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ca4ced479153a9de0a527f6b9ceb0a7b248d263e7914e9b0fe498028fc164fafefbbfbe64e7d4abc7850572e760fa4911903e0cb56ac7809c3a2bc7c0bb116b
|
7
|
+
data.tar.gz: cb8b29027ce6d232a46f493d20bbb3bc8031c3ff1772e90686097a8102b462e9e76917349bd723db7a3bd42dc4bc9f80f21fb0e28845eae9acd609a5470d363b
|
data/README.md
CHANGED
@@ -37,6 +37,7 @@ To use nice_hash on Http connections take a look at nice_http gem: https://githu
|
|
37
37
|
+ [Random dates](#random-dates)
|
38
38
|
+ [Deep copy of a hash](#deep-copy-of-a-hash)
|
39
39
|
+ [Nested deletion](#nested-deletion)
|
40
|
+
+ [Deep merge of two hashes](#deep-merge-of-two-hashes)
|
40
41
|
+ [Boolean class](#boolean-class)
|
41
42
|
* [Other tools integration](#other-tools-integration)
|
42
43
|
+ [Tabulo](#tabulo)
|
@@ -888,6 +889,16 @@ If you want to delete a key on a nested hash you can use `delete_nested` and sup
|
|
888
889
|
#>{:user=>{:address=>{:country=>"Spain"}, :name=>"Peter", :age=>33}, :customer=>true}
|
889
890
|
|
890
891
|
```
|
892
|
+
#### Deep merge of two hashes
|
893
|
+
If you need to merge multidimensional hashes
|
894
|
+
|
895
|
+
```ruby
|
896
|
+
my_hash = {one: 1, two: 2, three: {car: 'seat'}}
|
897
|
+
other_hash = {one: 11, four: 44, three: {car: 'ferrari', model: 'unknown'}}
|
898
|
+
p my_hash.nice_merge(other_hash)
|
899
|
+
#>{:one=>11, :two=>2, :three=>{:car=>"ferrari", :model=>"unknown"}, :four=>44}
|
900
|
+
```
|
901
|
+
|
891
902
|
|
892
903
|
#### Boolean class
|
893
904
|
We added the possibility to check if a value is boolean or not since in Ruby doesn't exist, just TrueClass and FalseClass
|
@@ -288,9 +288,26 @@ class Hash
|
|
288
288
|
NiceHash.nice_filter(self, keys)
|
289
289
|
end
|
290
290
|
|
291
|
+
###########################################################################
|
292
|
+
# Merging multi-dimensional hashes
|
293
|
+
###########################################################################
|
294
|
+
def nice_merge(hash = nil)
|
295
|
+
return self unless hash.is_a?(Hash)
|
296
|
+
base = self
|
297
|
+
hash.each do |key, v|
|
298
|
+
if base[key].is_a?(Hash) && hash[key].is_a?(Hash)
|
299
|
+
base[key].nice_merge(hash[key])
|
300
|
+
else
|
301
|
+
base[key]= hash[key]
|
302
|
+
end
|
303
|
+
end
|
304
|
+
base
|
305
|
+
end
|
306
|
+
|
291
307
|
alias gen generate
|
292
308
|
alias val validate
|
293
309
|
alias patterns pattern_fields
|
310
|
+
alias nice_copy deep_copy
|
294
311
|
end
|
295
312
|
|
296
313
|
class Object
|
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.
|
4
|
+
version: 1.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mario Ruiz
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: string_pattern
|
@@ -16,40 +16,40 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '2.
|
19
|
+
version: '2.3'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 2.
|
22
|
+
version: 2.3.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '2.
|
29
|
+
version: '2.3'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 2.
|
32
|
+
version: 2.3.0
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: rspec
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - ">="
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: 3.9.0
|
40
37
|
- - "~>"
|
41
38
|
- !ruby/object:Gem::Version
|
42
39
|
version: '3.9'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 3.9.0
|
43
43
|
type: :development
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- - ">="
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: 3.9.0
|
50
47
|
- - "~>"
|
51
48
|
- !ruby/object:Gem::Version
|
52
49
|
version: '3.9'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 3.9.0
|
53
53
|
description: 'NiceHash creates hashes following certain patterns so your testing will
|
54
54
|
be much easier. Parse and filter JSON. You can easily generate all the hashes you
|
55
55
|
want following the criteria you specify. Many other features coming to Hash class
|
@@ -101,8 +101,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: '0'
|
103
103
|
requirements: []
|
104
|
-
rubygems_version: 3.
|
105
|
-
signing_key:
|
104
|
+
rubygems_version: 3.4.3
|
105
|
+
signing_key:
|
106
106
|
specification_version: 4
|
107
107
|
summary: NiceHash creates hashes following certain patterns so your testing will be
|
108
108
|
much easier. Parse and filter JSON. Perfect to be used in test data factories
|