thefox-ext 1.4.0 → 1.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: 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