mumukit-core 1.6.0 → 1.7.0

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: 468b010eb001c37b7c00b27c15777dadbae2559e5e7bc529ecd88053f6532f91
4
- data.tar.gz: 66bf5a41b450d726e0ae06f5458405f61992e196b37f191396bf042ba97f7544
3
+ metadata.gz: 60b4eb1f47a0dc622ead6ac579f7a822a17b11729ca24a927980770b699f35c8
4
+ data.tar.gz: 5598e260bc033f94a9d891d4e57ccfc0b0c80927761db1b826098a9ed30fe972
5
5
  SHA512:
6
- metadata.gz: f5f3672e091adeae2e6913d684dd96c7f3efa5b0cfd1caaab09bc1aae836771f4c604baa1c6e75ea65b7163ed0caa8979a50b93869d9a5e458c25e2bbda98660
7
- data.tar.gz: f3536c22db0a8e22a01c517ed95381100a6f541f14f9fb465d1fb2f57b5d048564d8c1cf82535e279e62b057f3b5ab2276dbbf804c0b2e2aabec506a0582d25c
6
+ metadata.gz: c7d601eca2a66d7311dba516adc7605324fccb647737d778e17744a230edcac0ee92c75e824396d46f5270880af3e3b9c98bf64d3a4ffe92df0248932f48a61b
7
+ data.tar.gz: 1476db72faaebe8da7fcce5698e2803debccc61427830e034f07ad446231ae104e7c044f347038150b6b7efb0005a7e70a57d70c35ace809cdef9366f259e3aa
@@ -1,10 +1,14 @@
1
+ require 'set'
2
+
1
3
  class Hash
2
- def dig(key, *keys)
3
- value = self[key]
4
- if !value.nil? && !keys.empty?
5
- value.dig(*keys)
6
- else
7
- value
4
+ unless instance_methods.include?(:dig)
5
+ def dig(key, *keys)
6
+ value = self[key]
7
+ if !value.nil? && !keys.empty?
8
+ value.dig(*keys)
9
+ else
10
+ value
11
+ end
8
12
  end
9
13
  end
10
14
 
@@ -15,4 +19,10 @@ class Hash
15
19
  def amend(other)
16
20
  other.merge(self)
17
21
  end
22
+
23
+ def diff(other)
24
+ s1 = Set.new(self)
25
+ s2 = Set.new(other)
26
+ { deletions: (s1 - s2).to_h, additions: (s2 - s1).to_h }
27
+ end
18
28
  end
@@ -14,9 +14,17 @@
14
14
  end
15
15
 
16
16
  message = proc do |actual|
17
+ expected_hash = as_matcher_json(expected, options)
18
+ actual_hash = as_matcher_json(actual, options)
19
+ diff = expected_hash.diff(actual_hash)
17
20
  <<-EOS
18
- expected: #{as_matcher_json(expected, options)} (#{expected.class})
19
- got: #{as_matcher_json(actual, options)} (#{actual.class})
21
+ expected: #{expected_hash} (#{expected.class})
22
+ got: #{actual_hash} (#{actual.class})
23
+ diff:
24
+ deletions:
25
+ #{diff[:deletions]}
26
+ additions:
27
+ #{diff[:additions]}
20
28
  EOS
21
29
  end
22
30
 
@@ -31,8 +39,8 @@
31
39
  failure_message(&message)
32
40
  failure_message_when_negated(&message)
33
41
  else
34
- failure_message_for_should(&:message)
35
- failure_message_for_should_not(&:message)
42
+ failure_message_for_should(&message)
43
+ failure_message_for_should_not(&message)
36
44
  end
37
45
  end
38
46
 
@@ -1,5 +1,5 @@
1
1
  module Mumukit
2
2
  module Core
3
- VERSION = '1.6.0'
3
+ VERSION = '1.7.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mumukit-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Franco Leonardo Bulgarelli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-01 00:00:00.000000000 Z
11
+ date: 2018-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -183,7 +183,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
183
  version: '0'
184
184
  requirements: []
185
185
  rubyforge_project:
186
- rubygems_version: 2.7.7
186
+ rubygems_version: 2.7.8
187
187
  signing_key:
188
188
  specification_version: 4
189
189
  summary: Ruby core extensions for mumuki on top of active support