thefox-ext 1.4.0 → 1.4.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0d9d3e3cc6b4f95af03f5bb904259185b8b1a7a9
4
- data.tar.gz: 1fa4937f167095f4990acdd2cd3283f873d873ee
3
+ metadata.gz: 05c9ab324e8e059c18d462f92ec460b1a199963f
4
+ data.tar.gz: 35c5a477858d7c6acd9f293605106b1ea420ffc9
5
5
  SHA512:
6
- metadata.gz: d2eb87e909fe0a35dcaf14210f8438882c9021cbf2f1784687a0b4019082a0df6bcdd3b10be785b22dcca8c8851de12c0e9d0f583115efbec18ddd79f3c06c0e
7
- data.tar.gz: 647ba64e5aba70994768e5ca3842a98954c5e2ae518218b34f034934461b8d7a406dca91a67955c7ae41dd9bce7025f388ce7d6e1c5dbefea4ab81bb38169714
6
+ metadata.gz: c99fe019c4277c64c723e706503ece8ade2cb25b8420ef16137d9656b374a284f9fce0ad02599e9d4aa7f34c877f62c5f23d87261fd1d5ed9c320dad41be8471
7
+ data.tar.gz: 16fadd3276e3cb8164ee74346f381ff82e1245f383a80238ee3c95f60a50039a99afe3c2ff98f0f6564aeb26b3b7168eebcb4f5981864fe162956099e630573e
@@ -15,11 +15,14 @@ class Hash
15
15
  if v.is_a?(Hash)
16
16
  has_subhashes = true
17
17
 
18
- if h2.has_key?(k) && h2[k].is_a?(Hash)
19
- # Inception! Go one level deeper.
20
- h1[k] = v.merge_recursive(h2[k], level + 1)
21
- else
22
- h1[k] = h2[k]
18
+ # If Hash 2 also has the same key.
19
+ if h2.has_key?(k)
20
+ if h2[k].is_a?(Hash)
21
+ # Inception! Go one level deeper.
22
+ h1[k] = v.merge_recursive(h2[k], level + 1)
23
+ else
24
+ h1[k] = h2[k]
25
+ end
23
26
  end
24
27
  else
25
28
  # Value of Hash 1 is no Subhash.
@@ -1,7 +1,8 @@
1
1
 
2
2
  module TheFox
3
3
  module Ext
4
- VERSION = '1.4.0'
4
+ RELEASE_ID = 10
5
+ VERSION = '1.4.1'
5
6
  DATE = '2016-02-13'
6
7
  end
7
8
  end
data/tests/tc_hash.rb CHANGED
@@ -26,13 +26,20 @@ class TestHash < MiniTest::Test
26
26
  assert_equal({'k1' => 2, 'k2' => 2}, h1.merge_recursive(h2))
27
27
  end
28
28
 
29
- def test_merge_recursive_clone4
29
+ def test_merge_recursive_clone4a
30
30
  h1 = {'k1' => 1, 'k2' => 1}
31
31
  h2 = {'k1' => 2, 'k2' => {'sk2' => 2}}
32
32
 
33
33
  assert_equal({'k1' => 2, 'k2' => {'sk2' => 2}}, h1.merge_recursive(h2))
34
34
  end
35
35
 
36
+ def test_merge_recursive_clone4b
37
+ h1 = {'k1' => 1, 'k2' => {'sk1' => 1}}
38
+ h2 = {'k1' => 2, 'k2' => 1}
39
+
40
+ assert_equal({'k1' => 2, 'k2' => 1}, h1.merge_recursive(h2))
41
+ end
42
+
36
43
  def test_merge_recursive_clone5
37
44
  h1 = {'k1' => 1, 'k2' => {'sk1' => 1}}
38
45
  h2 = {'k1' => 2, 'k2' => {'sk2' => 2}}
@@ -47,6 +54,13 @@ class TestHash < MiniTest::Test
47
54
  assert_equal({'k1' => 2, 'k2' => 1, 'k3' => 2, 'k4' => {'sk1' => 1, 'sk2' => 2}}, h1.merge_recursive(h2))
48
55
  end
49
56
 
57
+ def test_merge_recursive_clone7
58
+ h1 = {'k1' => 1, 'k2' => {'sk1' => 1}}
59
+ h2 = {'k1' => 2}
60
+
61
+ assert_equal({'k1' => 2, 'k2' => {'sk1' => 1}}, h1.merge_recursive(h2))
62
+ end
63
+
50
64
  def test_merge_recursive_self1
51
65
  h1 = {'k1' => 1, 'k2' => 1}
52
66
  h2 = {'k1' => 2, 'k2' => 2}
@@ -74,7 +88,7 @@ class TestHash < MiniTest::Test
74
88
  assert_equal({'k1' => 2, 'k2' => 2}, h1)
75
89
  end
76
90
 
77
- def test_merge_recursive_self4
91
+ def test_merge_recursive_self4a
78
92
  h1 = {'k1' => 1, 'k2' => 1}
79
93
  h2 = {'k1' => 2, 'k2' => {'sk2' => 2}}
80
94
 
@@ -83,6 +97,15 @@ class TestHash < MiniTest::Test
83
97
  assert_equal({'k1' => 2, 'k2' => {'sk2' => 2}}, h1)
84
98
  end
85
99
 
100
+ def test_merge_recursive_self4b
101
+ h1 = {'k1' => 1, 'k2' => {'sk2' => 1}}
102
+ h2 = {'k1' => 2, 'k2' => 1}
103
+
104
+ h1.merge_recursive!(h2)
105
+
106
+ assert_equal({'k1' => 2, 'k2' => 1}, h1)
107
+ end
108
+
86
109
  def test_merge_recursive_self5
87
110
  h1 = {'k1' => 1, 'k2' => {'sk1' => 1}}
88
111
  h2 = {'k1' => 2, 'k2' => {'sk2' => 2}}
@@ -100,4 +123,13 @@ class TestHash < MiniTest::Test
100
123
 
101
124
  assert_equal({'k1' => 2, 'k2' => 1, 'k3' => 2, 'k4' => {'sk1' => 1, 'sk2' => 2}}, h1)
102
125
  end
126
+
127
+ def test_merge_recursive_self7
128
+ h1 = {'k1' => 1, 'k2' => {'sk1' => 1}}
129
+ h2 = {'k1' => 2}
130
+
131
+ h1.merge_recursive!(h2)
132
+
133
+ assert_equal({'k1' => 2, 'k2' => {'sk1' => 1}}, h1)
134
+ end
103
135
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thefox-ext
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Mayer