gemsupport 0.4.0 → 0.4.1

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: c24d6ef09f2dc76b3fb687e33347f27dfca03945
4
- data.tar.gz: 836dd615888a0d478149ec49c3ce61aa1c6ccc7c
3
+ metadata.gz: 4889fe19690399a9384306f182122bc94c712ca2
4
+ data.tar.gz: 95b9f4f60675d47a4b7709b2f2b659fb3d261759
5
5
  SHA512:
6
- metadata.gz: bd2be0ff5fba8629ab50577672551c44dcf26bf659ac9d0b3e7b653afeb55784dc3eae02cf1c0db3b54bb7408ce965917f992a7f0f9e1ed89e5536e8fcb6f1eb
7
- data.tar.gz: 6eb6cdb0d7937a05fe0165bc1d5fb7e0037434ebf64e35184ded51e9bdda2bbcdf945b52d86d130dabacaf1c6ecea20134159fad959d79b25624255b542cc0b8
6
+ metadata.gz: cae890e40a3f1db0faa7230af4b690d8995d6b3bd109aa042dea58a5643e5933512933df351ad6c7a9d4782ab55940e8710f8388b3ba583c63b3b84f023d5362
7
+ data.tar.gz: 473ab8e440a3495ac54a693a20307ae60da5f4e16892556fb056eb97ab40f6e78e98913815eeb98dc10ef6811c4727dd8de0b123fa94be1feaa461dc648835c7
@@ -11,3 +11,17 @@ Object.class_eval do
11
11
  raise
12
12
  end
13
13
  end
14
+
15
+ Hash.class_eval do
16
+ def deep_clone(is_root: true)
17
+ each_with_object({}) do |(k, v), hsh|
18
+ hsh[k.deep_clone(is_root: false)] = v.deep_clone(is_root: false)
19
+ end
20
+ end
21
+ end
22
+
23
+ Array.class_eval do
24
+ def deep_clone(is_root: true)
25
+ map { |e| e.deep_clone(is_root: false) }
26
+ end
27
+ end
@@ -1,3 +1,3 @@
1
1
  module Gemsupport
2
- VERSION = '0.4.0'
2
+ VERSION = '0.4.1'
3
3
  end
@@ -20,25 +20,23 @@ describe Object do
20
20
  }
21
21
  end
22
22
  let!(:deep_cloned) { input.deep_clone }
23
- let(:modify_clone) do
24
- lambda do
25
- deep_cloned[:another_key] = 'yolo'
26
- deep_cloned[:ary].last[:k2] = 65
27
- deep_cloned[:ary] << 'inserted value'
28
- end
23
+
24
+ before do
25
+ deep_cloned[:another_key] = 'yolo'
26
+ deep_cloned[:ary].last[:k2] = 65
27
+ deep_cloned[:ary] << 'inserted value'
29
28
  end
30
29
 
31
30
  it 'does not change the original' do
32
- expect { modify_clone.call }.to_not change { input }
31
+ expect(deep_cloned).to_not eq(input)
33
32
  end
34
33
 
35
34
  it 'changes the cloned object' do
36
- expect { modify_clone.call }.to change { deep_cloned }
37
- .from(input).to(key: 'trololo',
38
- another_key: 'yolo',
39
- ary: [{ k1: 12, k2: '23' },
40
- { k1: 45, k2: 65 },
41
- 'inserted value'])
35
+ expect(deep_cloned).to eq(key: 'trololo',
36
+ another_key: 'yolo',
37
+ ary: [{ k1: 12, k2: '23' },
38
+ { k1: 45, k2: 65 },
39
+ 'inserted value'])
42
40
  end
43
41
  end
44
42
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gemsupport
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - mdouchement
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-14 00:00:00.000000000 Z
11
+ date: 2015-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler