rspec-support 3.12.0 → 3.13.1
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/Changelog.md +36 -3
- data/lib/rspec/support/caller_filter.rb +3 -1
- data/lib/rspec/support/comparable_version.rb +2 -0
- data/lib/rspec/support/differ.rb +2 -0
- data/lib/rspec/support/directory_maker.rb +2 -0
- data/lib/rspec/support/encoded_string.rb +2 -0
- data/lib/rspec/support/fuzzy_matcher.rb +2 -0
- data/lib/rspec/support/hunk_generator.rb +2 -0
- data/lib/rspec/support/matcher_definition.rb +2 -0
- data/lib/rspec/support/method_signature_verifier.rb +7 -3
- data/lib/rspec/support/mutex.rb +2 -0
- data/lib/rspec/support/object_formatter.rb +2 -0
- data/lib/rspec/support/recursive_const_methods.rb +2 -0
- data/lib/rspec/support/reentrant_mutex.rb +3 -1
- data/lib/rspec/support/ruby_features.rb +23 -0
- data/lib/rspec/support/source/location.rb +2 -0
- data/lib/rspec/support/source/node.rb +2 -0
- data/lib/rspec/support/source/token.rb +2 -0
- data/lib/rspec/support/source.rb +2 -0
- data/lib/rspec/support/spec/deprecation_helpers.rb +2 -0
- data/lib/rspec/support/spec/diff_helpers.rb +2 -0
- data/lib/rspec/support/spec/formatting_support.rb +2 -0
- data/lib/rspec/support/spec/in_sub_process.rb +6 -0
- data/lib/rspec/support/spec/library_wide_checks.rb +2 -0
- data/lib/rspec/support/spec/shell_out.rb +5 -0
- data/lib/rspec/support/spec/stderr_splitter.rb +2 -0
- data/lib/rspec/support/spec/string_matcher.rb +2 -0
- data/lib/rspec/support/spec/with_isolated_directory.rb +2 -0
- data/lib/rspec/support/spec/with_isolated_stderr.rb +2 -0
- data/lib/rspec/support/spec.rb +2 -0
- data/lib/rspec/support/version.rb +3 -1
- data/lib/rspec/support/warnings.rb +2 -0
- data/lib/rspec/support/with_keywords_when_needed.rb +2 -0
- data/lib/rspec/support.rb +10 -2
- data.tar.gz.sig +0 -0
- metadata +8 -8
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 92bef00902f2274e73ead3711ea3c341a34b07eb11cdf647a8d737e1d0c11382
|
|
4
|
+
data.tar.gz: 90317d4ebccad5e6da2abb4e2af56a1dbb217bd9961d3dc68ea80ff824f8117e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 025c00e2292a341c12cc2001f83a174749afa81802cc9df491563e9743ebcb3020c2d7c3743ddf5da43c127c7c5803e98d1640ebacd8ac6b5f4ccd51aa2b13e4
|
|
7
|
+
data.tar.gz: '0209a2909369b4da3fa8164bf47249455f69607019a7813fb598be8987dec613c3f3707484f767222b91b5b586a0eb05f63c783287284a314531736fc293264f'
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/Changelog.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
### Development
|
|
2
|
-
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.
|
|
2
|
+
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.13.1...main)
|
|
3
|
+
|
|
4
|
+
### 3.13.1 / 2024-02-23
|
|
5
|
+
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.13.0...v3.13.1)
|
|
6
|
+
|
|
7
|
+
Bug Fixes:
|
|
8
|
+
|
|
9
|
+
* Exclude ruby internal require warnings from `RSpec::Support::CallerFilter#first_non_rspec_line`.
|
|
10
|
+
(Jon Rowe, #593)
|
|
11
|
+
|
|
12
|
+
### 3.13.0 / 2024-02-04
|
|
13
|
+
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.12.2...v3.13.0)
|
|
14
|
+
|
|
15
|
+
Enchancements
|
|
16
|
+
|
|
17
|
+
* Add `RubyFeatures#supports_syntax_suggest?`. (Jon Rowe, #571)
|
|
18
|
+
|
|
19
|
+
### 3.12.2 / 2024-02-04
|
|
20
|
+
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.12.1...v3.12.2)
|
|
21
|
+
|
|
22
|
+
Bug Fixes:
|
|
23
|
+
|
|
24
|
+
* Properly surface errors from `in_sub_process`. (Jon Rowe, #575)
|
|
25
|
+
* Add magic comment for freezing string literals. (Josh Nichols, #586)
|
|
26
|
+
* Allow string keys for keyword arguments during verification of method
|
|
27
|
+
signatures, (but only on Ruby 3+). (@malcolmohare, #591)
|
|
28
|
+
|
|
29
|
+
### 3.12.1 / 2023-06-26
|
|
30
|
+
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.12.0...v3.12.1)
|
|
31
|
+
|
|
32
|
+
Bug Fixes:
|
|
33
|
+
|
|
34
|
+
* Fix `RSpec::Support.thread_local_data` to be Thread local but not Fiber local.
|
|
35
|
+
(Jon Rowe, #581)
|
|
3
36
|
|
|
4
37
|
### 3.12.0 / 2022-10-26
|
|
5
38
|
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.11.1...v3.12.0)
|
|
@@ -118,7 +151,7 @@ Bug Fixes:
|
|
|
118
151
|
Bug Fixes:
|
|
119
152
|
|
|
120
153
|
* Ensure that inspecting a `SimpleDelegator` based object works regardless of
|
|
121
|
-
|
|
154
|
+
visibility of the `__getobj__` method. (Jon Rowe, #369)
|
|
122
155
|
|
|
123
156
|
### 3.8.0 / 2018-08-04
|
|
124
157
|
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.7.1...v3.8.0)
|
|
@@ -226,7 +259,7 @@ Changes:
|
|
|
226
259
|
|
|
227
260
|
Enhancements:
|
|
228
261
|
|
|
229
|
-
* Improve formatting of `Delegator` based objects (e.g. `
|
|
262
|
+
* Improve formatting of `Delegator` based objects (e.g. `SimpleDelegator`) in
|
|
230
263
|
failure messages and diffs. (Andrew Horner, #215)
|
|
231
264
|
* Add `ComparableVersion`. (Yuji Nakayama, #245)
|
|
232
265
|
* 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
|
data/lib/rspec/support/differ.rb
CHANGED
|
@@ -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
|
|
385
|
+
# Figures out whether a given method can accept various arguments.
|
|
382
386
|
# Surprisingly non-trivial.
|
|
383
387
|
#
|
|
384
388
|
# @private
|
data/lib/rspec/support/mutex.rb
CHANGED
|
@@ -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
|
|
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
|
data/lib/rspec/support/source.rb
CHANGED
|
@@ -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 'open3'
|
|
2
4
|
require 'rake/file_utils'
|
|
3
5
|
require 'shellwords'
|
|
@@ -77,6 +79,9 @@ module RSpec
|
|
|
77
79
|
# This is a JRuby 9.2.1.x error
|
|
78
80
|
%r{jruby/kernel/gem_prelude},
|
|
79
81
|
%r{lib/jruby\.jar!/jruby/preludes},
|
|
82
|
+
# Ignore some JRuby errors for gems
|
|
83
|
+
%r{jruby/\d\.\d(\.\d)?/gems/aruba},
|
|
84
|
+
%r{jruby/\d\.\d(\.\d)?/gems/ffi},
|
|
80
85
|
]
|
|
81
86
|
|
|
82
87
|
def strip_known_warnings(input)
|
data/lib/rspec/support/spec.rb
CHANGED
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
|
|
@@ -89,8 +91,14 @@ module RSpec
|
|
|
89
91
|
end
|
|
90
92
|
|
|
91
93
|
# A single thread local variable so we don't excessively pollute that namespace.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
+
if RUBY_VERSION.to_f >= 2
|
|
95
|
+
def self.thread_local_data
|
|
96
|
+
Thread.current.thread_variable_get(:__rspec) || Thread.current.thread_variable_set(:__rspec, {})
|
|
97
|
+
end
|
|
98
|
+
else
|
|
99
|
+
def self.thread_local_data
|
|
100
|
+
Thread.current[:__rspec] ||= {}
|
|
101
|
+
end
|
|
94
102
|
end
|
|
95
103
|
|
|
96
104
|
# @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.
|
|
4
|
+
version: 3.13.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Chelimsky
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
- Sam Phippen
|
|
11
11
|
- Xaviery Shay
|
|
12
12
|
- Bradley Schaefer
|
|
13
|
-
autorequire:
|
|
13
|
+
autorequire:
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain:
|
|
16
16
|
- |
|
|
@@ -48,7 +48,7 @@ cert_chain:
|
|
|
48
48
|
ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
|
|
49
49
|
F3MdtaDehhjC
|
|
50
50
|
-----END CERTIFICATE-----
|
|
51
|
-
date:
|
|
51
|
+
date: 2024-02-23 00:00:00.000000000 Z
|
|
52
52
|
dependencies:
|
|
53
53
|
- !ruby/object:Gem::Dependency
|
|
54
54
|
name: rake
|
|
@@ -125,11 +125,11 @@ licenses:
|
|
|
125
125
|
- MIT
|
|
126
126
|
metadata:
|
|
127
127
|
bug_tracker_uri: https://github.com/rspec/rspec-support/issues
|
|
128
|
-
changelog_uri: https://github.com/rspec/rspec-support/blob/v3.
|
|
128
|
+
changelog_uri: https://github.com/rspec/rspec-support/blob/v3.13.1/Changelog.md
|
|
129
129
|
documentation_uri: https://rspec.info/documentation/
|
|
130
130
|
mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
|
|
131
131
|
source_code_uri: https://github.com/rspec/rspec-support
|
|
132
|
-
post_install_message:
|
|
132
|
+
post_install_message:
|
|
133
133
|
rdoc_options:
|
|
134
134
|
- "--charset=UTF-8"
|
|
135
135
|
require_paths:
|
|
@@ -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.
|
|
149
|
-
signing_key:
|
|
148
|
+
rubygems_version: 3.5.6
|
|
149
|
+
signing_key:
|
|
150
150
|
specification_version: 4
|
|
151
|
-
summary: rspec-support-3.
|
|
151
|
+
summary: rspec-support-3.13.1
|
|
152
152
|
test_files: []
|
metadata.gz.sig
CHANGED
|
Binary file
|