mocha 2.4.0 → 2.4.2

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
  SHA256:
3
- metadata.gz: bc6cb720040e8f8e9b422f5c96529de7d3d0a6d26d5b627cbce4edc070de0b84
4
- data.tar.gz: 466f0bc9a7f8422150eaff6cfbff9bd6582c2ce71dbf72be894f6bcfc7c6fe33
3
+ metadata.gz: 1ea825862f801a2e95a196ca677bb98aa6d7b9c51a8eb5a3cfcb9e8dea8baabb
4
+ data.tar.gz: b6f0b63c97d5ec4df6aabc7e8675f7d1b2ba8a99833f724fa9e2087aaa40bdeb
5
5
  SHA512:
6
- metadata.gz: aacaeecf4b7e8eea1b2e4ae31bb19759a0c2045befc8cbe80ae9a9b32fb5af4dbaffc0bbefa228b33232b5cbd92c92c2e9aa61ca9660e0aa3f1500ac881606a1
7
- data.tar.gz: 2c9b80dc28bd3a397e70fe93c4c383c4faac9429e028197396b0c192bda9445a14629e694f74b86d180bdbe54af6c80ad152491806f4226d237da137e7020722
6
+ metadata.gz: 4b9b72dfc0e523bf8b7c50211e13ee63379fefa565474c755475032bf5dfb6f3d736fcbbf32884a2b9e153a2141b4fc3a291fbf7a2997e9810cb71e0817f3234
7
+ data.tar.gz: 61f87b76172af493bf4f2354f2638a939d122388490d56179e8bc1c719b95af97815fa860c2936cfc88980bd7bb547689c5ad53941c731acd42a1c10de3d855b
data/.rubocop.yml CHANGED
@@ -36,6 +36,11 @@ Style/WhileUntilModifier:
36
36
  Style/AccessModifierDeclarations:
37
37
  Enabled: false
38
38
 
39
+ # `Module#===` is useful in presence of objects such as mocks
40
+ # that may have a `is_a?` implementation that lies.
41
+ Style/CaseEquality:
42
+ Enabled: false
43
+
39
44
  # This is useful when using `ExecutionPoint.current` to make tests more robust
40
45
  Style/Semicolon:
41
46
  Enabled: false
data/RELEASE.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Release Notes
2
2
 
3
+ ## 2.4.2
4
+
5
+ ### External changes
6
+
7
+ * Don't trust `Object#is_a?` in presence of mock objects (#656) - thanks to @casperisfine
8
+
9
+ ## 2.4.1
10
+
11
+ ### External changes
12
+
13
+ * Fix regression in matchers when used with keyword arguments (#654 & #655) - thanks to @ElvinEfendi for reporting
14
+
15
+ ### Internal changes
16
+
17
+ * Reduce duplication & consolidate `#to_matcher` method definitions (600ee2aa, e9de64e4, #655)
18
+ * Change `#to_matcher` method to use keyword arguments (3b60b7df, #655)
19
+
3
20
  ## 2.4.0
4
21
 
5
22
  ### External changes
@@ -2,11 +2,6 @@ module Mocha
2
2
  module ParameterMatchers
3
3
  # @abstract Subclass and implement +#matches?+ and +#mocha_inspect+ to define a custom matcher. Also add a suitably named instance method to {ParameterMatchers} to build an instance of the new matcher c.f. {#equals}.
4
4
  class Base
5
- # @private
6
- def to_matcher(_expectation = nil)
7
- self
8
- end
9
-
10
5
  # A shorthand way of combining two matchers when both must match.
11
6
  #
12
7
  # Returns a new {AllOf} parameter matcher combining two matchers using a logical AND.
@@ -1,3 +1,4 @@
1
+ require 'mocha/parameter_matchers/base'
1
2
  require 'mocha/parameter_matchers/equals'
2
3
  require 'mocha/parameter_matchers/positional_or_keyword_hash'
3
4
 
@@ -6,8 +7,14 @@ module Mocha
6
7
  # @private
7
8
  module InstanceMethods
8
9
  # @private
9
- def to_matcher(_expectation = nil)
10
- Mocha::ParameterMatchers::Equals.new(self)
10
+ def to_matcher(expectation: nil, top_level: false)
11
+ if Base === self
12
+ self
13
+ elsif Hash === self && top_level
14
+ Mocha::ParameterMatchers::PositionalOrKeywordHash.new(self, expectation)
15
+ else
16
+ Mocha::ParameterMatchers::Equals.new(self)
17
+ end
11
18
  end
12
19
  end
13
20
  end
@@ -17,11 +24,3 @@ end
17
24
  class Object
18
25
  include Mocha::ParameterMatchers::InstanceMethods
19
26
  end
20
-
21
- # @private
22
- class Hash
23
- # @private
24
- def to_matcher(expectation = nil)
25
- Mocha::ParameterMatchers::PositionalOrKeywordHash.new(self, expectation)
26
- end
27
- end
@@ -28,7 +28,7 @@ module Mocha
28
28
  end
29
29
 
30
30
  def matchers
31
- @expected_parameters.map { |p| p.to_matcher(@expectation) }
31
+ @expected_parameters.map { |p| p.to_matcher(expectation: @expectation, top_level: true) }
32
32
  end
33
33
  end
34
34
  end
data/lib/mocha/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mocha
2
- VERSION = '2.4.0'.freeze
2
+ VERSION = '2.4.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mocha
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Mead
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-16 00:00:00.000000000 Z
11
+ date: 2024-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby2_keywords