nice_hash 1.18.2 → 1.18.4

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
  SHA256:
3
- metadata.gz: 28cebce97247546c4f1db4d7f7fda1d307e24cecd2cd8a235782f2c8765092e2
4
- data.tar.gz: cc3fca8a245ad2dd48d0bd3d1653ef09c2aa371fe3509304a0c04795bc3e2597
3
+ metadata.gz: 35aa5c31a19f5080af41e4b842f7bd41bc26f660259c9c0e3e066efabea49aa3
4
+ data.tar.gz: 4ab21f3761514b9ab5a79d49c553ac297be1970ffdd8392c633c6e7b0bc5ac3b
5
5
  SHA512:
6
- metadata.gz: 196b9c9e068ef89415b6b2883deaec846a1b7b5ccb3b0c835ed2d50e02f409344ecb4bbfd5a4c87cacf46181765f7bf52b0ee945dff5eec81180a3b5c20e93b6
7
- data.tar.gz: '09ce814e6899f7c163a5c5c009e1617f33262809b7401ee6d3e8c4e73c1a18c4377cf21d80e1d0dc4d6f2a8da0266f0df5aefe599f4adbc77318c41f0f9a0fa3'
6
+ metadata.gz: cc215c07e819c008f2fecb82c6bdc1b26dd86b48dc542c56bc87936aeab80a64df6def0850835f5c249912867cbc78d2ea8d573f42963ad8866f69e182ef9dce
7
+ data.tar.gz: f238daa2302fd029c03a421fb092ebba6ec4dea0ccd9f0b2c0d66707039dc88861f0d33d5079826df2abd1827ff04a58922922fe207a51e5a369a471f3e3a301
@@ -109,6 +109,14 @@ class Array
109
109
  NiceHash.nice_filter(self, keys)
110
110
  end
111
111
 
112
+ ###########################################################################
113
+ # returns a clean copy
114
+ ###########################################################################
115
+ def deep_copy
116
+ NiceHash.deep_clone(self)
117
+ end
118
+
119
+ alias nice_copy deep_copy
112
120
  end
113
121
 
114
122
  require "date"
@@ -22,8 +22,16 @@ class NiceHash
22
22
  ##################################################
23
23
  def self.deep_clone(obj)
24
24
  obj.clone.tap do |new_obj|
25
- new_obj.each do |key, val|
26
- new_obj[key] = deep_clone(val) if val.is_a?(Hash)
25
+ if new_obj.is_a?(Array)
26
+ new_obj.each_with_index do |val, i|
27
+ new_obj[i] = deep_clone(val)
28
+ end
29
+ elsif new_obj.is_a?(Hash)
30
+ new_obj.each do |key, val|
31
+ new_obj[key] = deep_clone(val)
32
+ end
33
+ else
34
+ new_obj = obj.clone
27
35
  end
28
36
  end
29
37
  end
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.18.2
4
+ version: 1.18.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mario Ruiz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-27 00:00:00.000000000 Z
11
+ date: 2023-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: string_pattern