rspec-mocks 3.11.1 → 3.12.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: 93e990c0ca803cda14a587b44a4a6148fd60df472f56e58c54be5a2c8ef4a655
4
- data.tar.gz: db0535d24fb98fa0da5c5de3356b687e1b95773624dd38132444f74a57c5d0b7
3
+ metadata.gz: 0cd2152d61378a0a88fff67002f2fb7654e420b8e05dae14a9a0dee53be75158
4
+ data.tar.gz: ae2927214cf12da04ea1301bda73e04663293bd8afce3e028d2937ccfee7332e
5
5
  SHA512:
6
- metadata.gz: 7e74e72aec89ffce718f693bfda425f142bfd7139d90c57ff02e62ac461d99f9458df2ffba237bd9163e1665fd9b03a0221f723552d84bffb539a567c3b98f71
7
- data.tar.gz: 6b2b9c447b777b74fcf50eb62a9674b0a4e321cf71165d340017f1ec9050a676c818a608d4d99bb5bb9c1178f44e57505e52c750b22520cb868b05b02812bfc2
6
+ metadata.gz: 19e1b47dd79167753c4f551006b20ec2b3f72ebdf3cd02d10c94c78fe14c5ff808de8a2dcd0b622723aee7c3454bc67f817477edbe877ba181244548d0725956
7
+ data.tar.gz: 326636f36eb006d142e59b62477c4014a539157bdff50d6e06be4236e00df2eb824e4939f709192d538196a6dd223d7d2efae4bb21fe7392a02afc7744789c9a
checksums.yaml.gz.sig CHANGED
Binary file
data/Changelog.md CHANGED
@@ -1,5 +1,24 @@
1
1
  ### Development
2
- [Full Changelog](http://github.com/rspec/rspec-mocks/compare/v3.11.1...3-11-maintenance)
2
+ [Full Changelog](http://github.com/rspec/rspec-mocks/compare/v3.12.0...3-12-maintenance)
3
+
4
+ ### 3.12.0 / 2022-10-26
5
+ [Full Changelog](http://github.com/rspec/rspec-mocks/compare/v3.11.2...v3.12.0)
6
+
7
+ Enhancements:
8
+
9
+ * Improve diff output when diffing keyword arguments against hashes.
10
+ (Jean Boussier, #1461)
11
+
12
+ ### 3.11.2 / 2022-10-25
13
+ [Full Changelog](http://github.com/rspec/rspec-mocks/compare/v3.11.1...v3.11.2)
14
+
15
+ Bug Fixes:
16
+
17
+ * Use the original implementation of `Class.new` to detect overridden definitions
18
+ of `new` rather than the owner, fixing detection of "double aliased" methods
19
+ in Ruby 3 and above. (Benoit Daloze, #1470, #1476)
20
+ * Support keyword argument semantics when constraining argument expectations using
21
+ `with` on Ruby 3.0+ with `instance_double` (Andrii Malyshko, #1473)
3
22
 
4
23
  ### 3.11.1 / 2022-03-31
5
24
  [Full Changelog](http://github.com/rspec/rspec-mocks/compare/v3.11.0...v3.11.1)
@@ -268,6 +268,17 @@ module RSpec
268
268
  def error_message(expectation, args_for_multiple_calls)
269
269
  expected_args = format_args(expectation.expected_args)
270
270
  actual_args = format_received_args(args_for_multiple_calls)
271
+
272
+ if RSpec::Support::RubyFeatures.distincts_kw_args_from_positional_hash? && expected_args == actual_args
273
+ expected_hash = expectation.expected_args.last
274
+ actual_hash = args_for_multiple_calls.last.last
275
+ if Hash === expected_hash && Hash === actual_hash &&
276
+ (Hash.ruby2_keywords_hash?(expected_hash) != Hash.ruby2_keywords_hash?(actual_hash))
277
+ actual_args += Hash.ruby2_keywords_hash?(actual_hash) ? " (keyword arguments)" : " (options hash)"
278
+ expected_args += Hash.ruby2_keywords_hash?(expected_hash) ? " (keyword arguments)" : " (options hash)"
279
+ end
280
+ end
281
+
271
282
  message = default_error_message(expectation, expected_args, actual_args)
272
283
 
273
284
  if args_for_multiple_calls.one?
@@ -406,7 +406,6 @@ module RSpec
406
406
  # some collaborators it delegates to for this stuff but for now this was
407
407
  # the simplest way to split the public from private stuff to make it
408
408
  # easier to publish the docs for the APIs we want published.
409
- # rubocop:disable Metrics/ModuleLength
410
409
  module ImplementationDetails
411
410
  attr_accessor :error_generator, :implementation
412
411
  attr_reader :message
@@ -686,7 +685,6 @@ module RSpec
686
685
  nil
687
686
  end
688
687
  end
689
- # rubocop:enable Metrics/ModuleLength
690
688
 
691
689
  include ImplementationDetails
692
690
  end
@@ -185,11 +185,23 @@ module RSpec
185
185
  def self.applies_to?(method_name)
186
186
  return false unless method_name == :new
187
187
  klass = yield
188
- return false unless klass.respond_to?(:new, true)
188
+ return false unless ::Class === klass && klass.respond_to?(:new, true)
189
189
 
190
190
  # We only want to apply our special logic to normal `new` methods.
191
191
  # Methods that the user has monkeyed with should be left as-is.
192
- ::RSpec::Support.method_handle_for(klass, :new).owner == ::Class
192
+ uses_class_new?(klass)
193
+ end
194
+
195
+ if RUBY_VERSION.to_i >= 3
196
+ CLASS_NEW = ::Class.instance_method(:new)
197
+
198
+ def self.uses_class_new?(klass)
199
+ ::RSpec::Support.method_handle_for(klass, :new) == CLASS_NEW.bind(klass)
200
+ end
201
+ else # Ruby 2's Method#== is too strict
202
+ def self.uses_class_new?(klass)
203
+ ::RSpec::Support.method_handle_for(klass, :new).owner == ::Class
204
+ end
193
205
  end
194
206
 
195
207
  def with_signature
@@ -31,6 +31,7 @@ module RSpec
31
31
  end
32
32
  end
33
33
  end
34
+ ruby2_keywords(:with) if respond_to?(:ruby2_keywords, true)
34
35
 
35
36
  private
36
37
 
@@ -3,7 +3,7 @@ module RSpec
3
3
  # Version information for RSpec mocks.
4
4
  module Version
5
5
  # Version of RSpec mocks currently in use in SemVer format.
6
- STRING = '3.11.1'
6
+ STRING = '3.12.0'
7
7
  end
8
8
  end
9
9
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-mocks
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.11.1
4
+ version: 3.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Baker
8
8
  - David Chelimsky
9
9
  - Myron Marston
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain:
13
13
  - |
@@ -45,7 +45,7 @@ cert_chain:
45
45
  ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
46
46
  F3MdtaDehhjC
47
47
  -----END CERTIFICATE-----
48
- date: 2022-03-31 00:00:00.000000000 Z
48
+ date: 2022-10-26 00:00:00.000000000 Z
49
49
  dependencies:
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: rspec-support
@@ -53,14 +53,14 @@ dependencies:
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: 3.11.0
56
+ version: 3.12.0
57
57
  type: :runtime
58
58
  prerelease: false
59
59
  version_requirements: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: 3.11.0
63
+ version: 3.12.0
64
64
  - !ruby/object:Gem::Dependency
65
65
  name: diff-lcs
66
66
  requirement: !ruby/object:Gem::Requirement
@@ -194,11 +194,11 @@ licenses:
194
194
  - MIT
195
195
  metadata:
196
196
  bug_tracker_uri: https://github.com/rspec/rspec-mocks/issues
197
- changelog_uri: https://github.com/rspec/rspec-mocks/blob/v3.11.1/Changelog.md
197
+ changelog_uri: https://github.com/rspec/rspec-mocks/blob/v3.12.0/Changelog.md
198
198
  documentation_uri: https://rspec.info/documentation/
199
199
  mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
200
200
  source_code_uri: https://github.com/rspec/rspec-mocks
201
- post_install_message:
201
+ post_install_message:
202
202
  rdoc_options:
203
203
  - "--charset=UTF-8"
204
204
  require_paths:
@@ -214,8 +214,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
214
214
  - !ruby/object:Gem::Version
215
215
  version: '0'
216
216
  requirements: []
217
- rubygems_version: 3.3.3
218
- signing_key:
217
+ rubygems_version: 3.1.6
218
+ signing_key:
219
219
  specification_version: 4
220
- summary: rspec-mocks-3.11.1
220
+ summary: rspec-mocks-3.12.0
221
221
  test_files: []
metadata.gz.sig CHANGED
@@ -1,3 +1,3 @@
1
- `���{3n��
2
- ^��[��Tk�eͫ�O%w��/2nä{X(�r��98��8}�Fv���U�ޕ����PAX���-#�/�rz=�ltڷV=�o�φ�h73���j#K.8��#�?�
3
- �P���s��֟0�pt�z�\�[k���3em�S+�����=f���<.����-�E���cA:����kiq(��Yc<[R,xMP��/
1
+ gM��!��GDZW��f_�c���
2
+ v�����1������F���GR?rp��u�&�?�!q�#'��̓�! ���� ���0tS`�J�0�GU�L?�5���e�`��x�,�{����oF����E wz]"e���y�~0�H�A�Q�����D-o;j�иi)_§`s"oGT�\���3��n�uY��=~h�{�S ��ौr��@�?�ԣ1��3�p�~CV��{������#� '6N�۽� �/� R
3
+ U��������ߚ� 0���T{CD���b?�qBPi