rspec-support 3.12.1 → 3.13.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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/Changelog.md +39 -3
  4. data/lib/rspec/support/caller_filter.rb +3 -1
  5. data/lib/rspec/support/comparable_version.rb +2 -0
  6. data/lib/rspec/support/differ.rb +2 -0
  7. data/lib/rspec/support/directory_maker.rb +2 -0
  8. data/lib/rspec/support/encoded_string.rb +2 -0
  9. data/lib/rspec/support/fuzzy_matcher.rb +2 -0
  10. data/lib/rspec/support/hunk_generator.rb +2 -0
  11. data/lib/rspec/support/matcher_definition.rb +2 -0
  12. data/lib/rspec/support/method_signature_verifier.rb +7 -3
  13. data/lib/rspec/support/mutex.rb +2 -0
  14. data/lib/rspec/support/object_formatter.rb +2 -0
  15. data/lib/rspec/support/recursive_const_methods.rb +2 -0
  16. data/lib/rspec/support/reentrant_mutex.rb +3 -1
  17. data/lib/rspec/support/ruby_features.rb +23 -0
  18. data/lib/rspec/support/source/location.rb +2 -0
  19. data/lib/rspec/support/source/node.rb +2 -0
  20. data/lib/rspec/support/source/token.rb +2 -0
  21. data/lib/rspec/support/source.rb +2 -0
  22. data/lib/rspec/support/spec/deprecation_helpers.rb +2 -0
  23. data/lib/rspec/support/spec/diff_helpers.rb +2 -0
  24. data/lib/rspec/support/spec/formatting_support.rb +2 -0
  25. data/lib/rspec/support/spec/in_sub_process.rb +6 -0
  26. data/lib/rspec/support/spec/library_wide_checks.rb +2 -0
  27. data/lib/rspec/support/spec/shell_out.rb +5 -0
  28. data/lib/rspec/support/spec/stderr_splitter.rb +2 -0
  29. data/lib/rspec/support/spec/string_matcher.rb +2 -0
  30. data/lib/rspec/support/spec/with_isolated_directory.rb +2 -0
  31. data/lib/rspec/support/spec/with_isolated_stderr.rb +2 -0
  32. data/lib/rspec/support/spec.rb +2 -0
  33. data/lib/rspec/support/version.rb +3 -1
  34. data/lib/rspec/support/warnings.rb +2 -0
  35. data/lib/rspec/support/with_keywords_when_needed.rb +2 -0
  36. data/lib/rspec/support.rb +2 -0
  37. data.tar.gz.sig +0 -0
  38. metadata +8 -8
  39. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cd43ff0da6f307b7e9ccc56ceb9e3fdd972f27b7d160b8ba860c6625bb62f39b
4
- data.tar.gz: a0c09feee171d7a1b02793888c995d9dd42f20660b6449db9c79eeed4a297b3f
3
+ metadata.gz: 4d00874e0f5c8cdbfd6af89bd0b54763d00af6e44f192f956db7f1d0339fbb7d
4
+ data.tar.gz: b4003c525be624eb4adbdd2a72361898c301f84186469a4e62afad1207a4c80b
5
5
  SHA512:
6
- metadata.gz: 247e3e818ef3c367c1ecbc4938dca5a0ca7c9b185c1b608900461e146ea1f8c5053e0d97adc692cd0871debeb764407a3403682ce425aebf1de6511f17f366fc
7
- data.tar.gz: b3b600ca9061f37b529af60308df73b4c9724de1d173ee01eda44c0f61404396d8f2af7a52b071db93299bb607905e8b1aa3ddac29cc364ef41136a1815735d1
6
+ metadata.gz: 9b07b1437db48aa727c95168b32fbd9b16ef13542accebd15b8ca12e9393e310d7120f128445eadbee725b72f8359460f7f3511fb59f58dadd91691a32ededb8
7
+ data.tar.gz: 1ff435a11b600b8bb6432cdab88f8c3d7a0603b3d1f7fe023e0b9b971f651976d08da482ffccacc35363543fe1c9b196dbb6bf28ea06c239d124c41225e94ead
checksums.yaml.gz.sig CHANGED
Binary file
data/Changelog.md CHANGED
@@ -1,5 +1,41 @@
1
1
  ### Development
2
- [Full Changelog](http://github.com/rspec/rspec-support/compare/v3.12.1...3-12-maintenance)
2
+ [Full Changelog](http://github.com/rspec/rspec-support/compare/v3.13.2...3-13-maintenance)
3
+
4
+ ### 3.13.2 / 2024-12-02
5
+ [Full Changelog](http://github.com/rspec/rspec-support/compare/v3.13.1...v3.13.2)
6
+
7
+ Bug Fixes:
8
+
9
+ * Prevent recursive calls to stubbed methods during stub invocation.
10
+ (James Dabbs, rspec/rspec#116)
11
+
12
+ ### 3.13.1 / 2024-02-23
13
+ [Full Changelog](http://github.com/rspec/rspec-support/compare/v3.13.0...v3.13.1)
14
+
15
+ Bug Fixes:
16
+
17
+ * Exclude ruby internal require warnings from `RSpec::Support::CallerFilter#first_non_rspec_line`.
18
+ (Jon Rowe, #593)
19
+
20
+ ### 3.13.0 / 2024-02-04
21
+ [Full Changelog](http://github.com/rspec/rspec-support/compare/v3.12.2...v3.13.0)
22
+
23
+ Enchancements
24
+
25
+ * Add `RubyFeatures#supports_syntax_suggest?`. (Jon Rowe, #571)
26
+
27
+ Bug Fixes:
28
+
29
+ * Allow string keys for keyword arguments during verification of method
30
+ signatures, (but only on Ruby 3+). (@malcolmohare, #591)
31
+
32
+ ### 3.12.2 / 2024-02-04
33
+ [Full Changelog](http://github.com/rspec/rspec-support/compare/v3.12.1...v3.12.2)
34
+
35
+ Bug Fixes:
36
+
37
+ * Properly surface errors from `in_sub_process`. (Jon Rowe, #575)
38
+ * Add magic comment for freezing string literals. (Josh Nichols, #586)
3
39
 
4
40
  ### 3.12.1 / 2023-06-26
5
41
  [Full Changelog](http://github.com/rspec/rspec-support/compare/v3.12.0...v3.12.1)
@@ -126,7 +162,7 @@ Bug Fixes:
126
162
  Bug Fixes:
127
163
 
128
164
  * Ensure that inspecting a `SimpleDelegator` based object works regardless of
129
- visibilty of the `__getobj__` method. (Jon Rowe, #369)
165
+ visibility of the `__getobj__` method. (Jon Rowe, #369)
130
166
 
131
167
  ### 3.8.0 / 2018-08-04
132
168
  [Full Changelog](http://github.com/rspec/rspec-support/compare/v3.7.1...v3.8.0)
@@ -234,7 +270,7 @@ Changes:
234
270
 
235
271
  Enhancements:
236
272
 
237
- * Improve formatting of `Delegator` based objects (e.g. `SimpleDelgator`) in
273
+ * Improve formatting of `Delegator` based objects (e.g. `SimpleDelegator`) in
238
274
  failure messages and diffs. (Andrew Horner, #215)
239
275
  * Add `ComparableVersion`. (Yuji Nakayama, #245)
240
276
  * Add `Ripper` support detection. (Yuji Nakayama, #245)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec::Support.require_rspec_support "ruby_features"
2
4
 
3
5
  module RSpec
@@ -25,7 +27,7 @@ module RSpec
25
27
  # when `CallerFilter.first_non_rspec_line` is called from the top level of a required
26
28
  # file, but it depends on if rubygems is loaded or not. We don't want to have to deal
27
29
  # with this complexity in our `RSpec.deprecate` calls, so we ignore it here.
28
- IGNORE_REGEX = Regexp.union(LIB_REGEX, "rubygems/core_ext/kernel_require.rb", "<internal:")
30
+ IGNORE_REGEX = Regexp.union(LIB_REGEX, "rubygems/core_ext/kernel_require.rb", "<internal:", %r{/lib/ruby/[^/]+/bundled_gems\.rb})
29
31
 
30
32
  if RSpec::Support::RubyFeatures.caller_locations_supported?
31
33
  # This supports args because it's more efficient when the caller specifies
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RSpec
2
4
  module Support
3
5
  # @private
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec::Support.require_rspec_support 'encoded_string'
2
4
  RSpec::Support.require_rspec_support 'hunk_generator'
3
5
  RSpec::Support.require_rspec_support "object_formatter"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec::Support.require_rspec_support 'ruby_features'
2
4
 
3
5
  module RSpec
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RSpec
2
4
  module Support
3
5
  # @private
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RSpec
2
4
  module Support
3
5
  # Provides a means to fuzzy-match between two arbitrary objects.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'diff/lcs'
2
4
  require 'diff/lcs/hunk'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RSpec
2
4
  module Support
3
5
  # @private
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rspec/support'
2
4
  RSpec::Support.require_rspec_support "ruby_features"
3
5
  RSpec::Support.require_rspec_support "matcher_definition"
@@ -82,7 +84,7 @@ module RSpec
82
84
  def has_kw_args_in?(args)
83
85
  Hash === args.last &&
84
86
  could_contain_kw_args?(args) &&
85
- (args.last.empty? || args.last.keys.any? { |x| x.is_a?(Symbol) })
87
+ (RubyFeatures.kw_arg_separation? || args.last.empty? || args.last.keys.any? { |x| x.is_a?(Symbol) })
86
88
  end
87
89
 
88
90
  # Without considering what the last arg is, could it
@@ -361,7 +363,7 @@ module RSpec
361
363
  end
362
364
 
363
365
  def split_args(*args)
364
- kw_args = if @signature.has_kw_args_in?(args)
366
+ kw_args = if @signature.has_kw_args_in?(args) && !RubyFeatures.kw_arg_separation?
365
367
  last = args.pop
366
368
  non_kw_args = last.reject { |k, _| k.is_a?(Symbol) }
367
369
  if non_kw_args.empty?
@@ -370,6 +372,8 @@ module RSpec
370
372
  args << non_kw_args
371
373
  last.select { |k, _| k.is_a?(Symbol) }.keys
372
374
  end
375
+ elsif @signature.has_kw_args_in?(args) && RubyFeatures.kw_arg_separation?
376
+ args.pop.keys
373
377
  else
374
378
  []
375
379
  end
@@ -378,7 +382,7 @@ module RSpec
378
382
  end
379
383
  end
380
384
 
381
- # Figures out wether a given method can accept various arguments.
385
+ # Figures out whether a given method can accept various arguments.
382
386
  # Surprisingly non-trivial.
383
387
  #
384
388
  # @private
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RSpec
2
4
  module Support
3
5
  # On 1.8.7, it's in the stdlib.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec::Support.require_rspec_support 'matcher_definition'
2
4
 
3
5
  module RSpec
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RSpec
2
4
  module Support
3
5
  # Provides recursive constant lookup methods useful for
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RSpec
2
4
  module Support
3
5
  # Allows a thread to lock out other threads from a critical section of code,
@@ -62,7 +64,7 @@ module RSpec
62
64
  # On 1.9 and up, this is in core, so we just use the real one
63
65
  class Mutex < ::Mutex
64
66
  # If you mock Mutex.new you break our usage of Mutex, so
65
- # instead we capture the original method to return Mutexs.
67
+ # instead we capture the original method to return Mutexes.
66
68
  NEW_MUTEX_METHOD = Mutex.method(:new)
67
69
 
68
70
  def self.new
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rbconfig'
2
4
  RSpec::Support.require_rspec_support "comparable_version"
3
5
 
@@ -94,6 +96,27 @@ module RSpec
94
96
  end
95
97
  end
96
98
 
99
+ if RUBY_VERSION.to_f >= 3.2
100
+ def supports_syntax_suggest?
101
+ true
102
+ end
103
+ else
104
+ def supports_syntax_suggest?
105
+ false
106
+ end
107
+ end
108
+
109
+ if RUBY_VERSION.to_f >= 3.0
110
+ # https://rubyreferences.github.io/rubychanges/3.0.html#keyword-arguments-are-now-fully-separated-from-positional-arguments
111
+ def kw_arg_separation?
112
+ true
113
+ end
114
+ else
115
+ def kw_arg_separation?
116
+ false
117
+ end
118
+ end
119
+
97
120
  if RUBY_VERSION.to_f >= 2.7
98
121
  def supports_taint?
99
122
  false
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RSpec
2
4
  module Support
3
5
  class Source
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec::Support.require_rspec_support 'source/location'
2
4
 
3
5
  module RSpec
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec::Support.require_rspec_support 'source/location'
2
4
 
3
5
  module RSpec
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec::Support.require_rspec_support 'encoded_string'
2
4
  RSpec::Support.require_rspec_support 'ruby_features'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RSpecHelpers
2
4
  def expect_deprecation_with_call_site(file, line, snippet=//)
3
5
  expect(RSpec.configuration.reporter).to receive(:deprecation).
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'diff/lcs'
2
4
 
3
5
  module RSpec
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RSpec
2
4
  module Support
3
5
  module FormattingSupport
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RSpec
2
4
  module Support
3
5
  module InSubProcess
@@ -11,6 +13,10 @@ module RSpec
11
13
  exception_reader, exception_writer = IO.pipe
12
14
  result_reader, result_writer = IO.pipe
13
15
 
16
+ # Set binary mode to avoid errors surrounding ascii-8bit to utf-8 conversion
17
+ # this happens with warnings on rspec-rails for example
18
+ [exception_reader, exception_writer, result_reader, result_writer].each { |io| io.binmode }
19
+
14
20
  pid = Process.fork do
15
21
  warning_preventer = $stderr = RSpec::Support::StdErrSplitter.new($stderr)
16
22
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rspec/support/spec/shell_out'
2
4
 
3
5
  module RSpec
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'open3'
2
4
  require 'rake/file_utils'
3
5
  require 'shellwords'
@@ -59,7 +61,9 @@ module RSpec
59
61
  %r{bundler/source/rubygems},
60
62
  # Ignore bundler + rubygems warning.
61
63
  %r{site_ruby/\d\.\d\.\d/rubygems},
64
+ %r{site_ruby/\d\.\d\.\d/bundler},
62
65
  %r{jruby-\d\.\d\.\d+\.\d/lib/ruby/stdlib/rubygems},
66
+ %r{lib/rubygems/custom_require},
63
67
  # This is required for windows for some reason
64
68
  %r{lib/bundler/rubygems},
65
69
  # This is a JRuby file that generates warnings on 9.0.3.0
@@ -80,6 +84,7 @@ module RSpec
80
84
  # Ignore some JRuby errors for gems
81
85
  %r{jruby/\d\.\d(\.\d)?/gems/aruba},
82
86
  %r{jruby/\d\.\d(\.\d)?/gems/ffi},
87
+ %r{warning: encoding options not supported in 1\.8},
83
88
  ]
84
89
 
85
90
  def strip_known_warnings(input)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'stringio'
2
4
 
3
5
  module RSpec
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rspec/matchers'
2
4
  # Special matcher for comparing encoded strings so that
3
5
  # we don't run any expectation failures through the Differ,
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'tmpdir'
2
4
 
3
5
  RSpec.shared_context "isolated directory" do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RSpec
2
4
  module Support
3
5
  module WithIsolatedStdErr
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rspec/support'
2
4
  require 'rspec/support/spec/in_sub_process'
3
5
 
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RSpec
2
4
  module Support
3
5
  module Version
4
- STRING = '3.12.1'
6
+ STRING = '3.13.2'
5
7
  end
6
8
  end
7
9
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rspec/support'
2
4
  RSpec::Support.require_rspec_support "caller_filter"
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec::Support.require_rspec_support("method_signature_verifier")
2
4
 
3
5
  module RSpec
data/lib/rspec/support.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RSpec
2
4
  module Support
3
5
  # @api private
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-support
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.12.1
4
+ version: 3.13.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Chelimsky
@@ -48,7 +48,7 @@ cert_chain:
48
48
  ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
49
49
  F3MdtaDehhjC
50
50
  -----END CERTIFICATE-----
51
- date: 2023-06-26 00:00:00.000000000 Z
51
+ date: 2024-12-02 00:00:00.000000000 Z
52
52
  dependencies:
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: rake
@@ -120,15 +120,15 @@ files:
120
120
  - lib/rspec/support/version.rb
121
121
  - lib/rspec/support/warnings.rb
122
122
  - lib/rspec/support/with_keywords_when_needed.rb
123
- homepage: https://github.com/rspec/rspec-support
123
+ homepage: https://github.com/rspec/rspec
124
124
  licenses:
125
125
  - MIT
126
126
  metadata:
127
- bug_tracker_uri: https://github.com/rspec/rspec-support/issues
128
- changelog_uri: https://github.com/rspec/rspec-support/blob/v3.12.1/Changelog.md
127
+ bug_tracker_uri: https://github.com/rspec/rspec/issues
128
+ changelog_uri: https://github.com/rspec/rspec/blob/rspec-support-v3.13.2/rspec-support/Changelog.md
129
129
  documentation_uri: https://rspec.info/documentation/
130
130
  mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
131
- source_code_uri: https://github.com/rspec/rspec-support
131
+ source_code_uri: https://github.com/rspec/rspec/blob/rspec-support-v3.13.2/rspec-support
132
132
  post_install_message:
133
133
  rdoc_options:
134
134
  - "--charset=UTF-8"
@@ -145,8 +145,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  - !ruby/object:Gem::Version
146
146
  version: '0'
147
147
  requirements: []
148
- rubygems_version: 3.4.1
148
+ rubygems_version: 3.5.16
149
149
  signing_key:
150
150
  specification_version: 4
151
- summary: rspec-support-3.12.1
151
+ summary: rspec-support-3.13.2
152
152
  test_files: []
metadata.gz.sig CHANGED
Binary file