mumukit-core 1.10.0 → 1.10.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mumukit/core/hash.rb +16 -11
- data/lib/mumukit/core/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f23367aebeb883e253333841f0e03b99ddbc3374460265f17f9992b999aa3ee5
|
4
|
+
data.tar.gz: 44fb682cfc01f1654e9a4d779695f996f2f093e514c83f01c821358c0d5a28ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93686ea5478d8447abe1448347279bb3ade70f1fe07253e89a9e6c6530fb48865a46191deeb285e13a8eeb1e08484f8d0446bcdeb7e628578c4752bed6356941
|
7
|
+
data.tar.gz: 7cc70400fc37094beb3cc1444c0f5610a0f9168c6e0b9ec09c4cb37d9c35bd7387568864acd71fa0b44508d220153aff754900a92858765fbd8b479d58e2d776
|
data/lib/mumukit/core/hash.rb
CHANGED
@@ -45,18 +45,23 @@ class Hash
|
|
45
45
|
added_v = diff[:additions][k]
|
46
46
|
next if !diff[:additions].include?(k) || v.class != added_v.class
|
47
47
|
if Array === v
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
48
|
+
if v.size == added_v.size
|
49
|
+
values = v.zip(added_v)
|
50
|
+
deep_deletions[k] = []
|
51
|
+
deep_additions[k] = []
|
52
|
+
values.select { |v1, v2| v1 != v2 }.each do |v1, v2|
|
53
|
+
if Hash === v1 && Hash === v2
|
54
|
+
sub_diff = v1.deep_diff(v2)
|
55
|
+
deep_deletions[k] << sub_diff[:deletions]
|
56
|
+
deep_additions[k] << sub_diff[:additions]
|
57
|
+
else
|
58
|
+
deep_deletions[k] << v1
|
59
|
+
deep_additions[k] << v2
|
60
|
+
end
|
59
61
|
end
|
62
|
+
else
|
63
|
+
deep_deletions[k] = v - added_v
|
64
|
+
deep_additions[k] = added_v - v
|
60
65
|
end
|
61
66
|
elsif Hash === v
|
62
67
|
sub_diff = v.deep_diff(added_v)
|
data/lib/mumukit/core/version.rb
CHANGED