rspec-support 3.8.0 → 3.9.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 +5 -5
- checksums.yaml.gz.sig +3 -2
- data.tar.gz.sig +0 -0
- data/Changelog.md +50 -0
- data/lib/rspec/support.rb +1 -1
- data/lib/rspec/support/differ.rb +2 -2
- data/lib/rspec/support/encoded_string.rb +19 -23
- data/lib/rspec/support/method_signature_verifier.rb +14 -2
- data/lib/rspec/support/object_formatter.rb +1 -1
- data/lib/rspec/support/ruby_features.rb +9 -0
- data/lib/rspec/support/spec/shell_out.rb +6 -1
- data/lib/rspec/support/spec/stderr_splitter.rb +4 -0
- data/lib/rspec/support/version.rb +1 -1
- metadata +10 -20
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: '0608e9d9e32db7972f9ed9edf1acc660be6e859589a5bb40118979f32e3e3093'
|
4
|
+
data.tar.gz: df94499781e6a3f6460990392a90bcea42c4c1aaa028357139787ab1b92716df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7598c046151adc5322cddd117f5809c3b3f9b1271c5db74496d6961e0799c1fbf3a47d2b48f1195be96b3c2ce0baab7c11d2f19709d478fc44848523034b9514
|
7
|
+
data.tar.gz: f548fa1b506985c64d9d612463cb4ffb8b41233a86af16ee26449e936570dbe0d4c2f2d9ad5c7fe3cd1a1b57d3156fba368b2f44627634053c2f1db51f64fc6d
|
checksums.yaml.gz.sig
CHANGED
@@ -1,2 +1,3 @@
|
|
1
|
-
�
|
2
|
-
|
1
|
+
�i|?��R�.�����m!�~��L�29�[�&�x=
|
2
|
+
��f��l��䦆��; ��O��t[�j���wr�bE�&W�[�p
|
3
|
+
^S�:�$zXPL�o��
|
data.tar.gz.sig
CHANGED
Binary file
|
data/Changelog.md
CHANGED
@@ -1,3 +1,53 @@
|
|
1
|
+
### 3.9.2 / 2019-12-30
|
2
|
+
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.9.1...v3.9.2)
|
3
|
+
|
4
|
+
Bug Fixes:
|
5
|
+
|
6
|
+
* Remove unneeded eval. (Matijs van Zuijlen, #394)
|
7
|
+
|
8
|
+
### 3.9.1 / 2019-12-28
|
9
|
+
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.9.0...v3.9.1)
|
10
|
+
|
11
|
+
Bug Fixes:
|
12
|
+
|
13
|
+
* Remove warning caused by keyword arguments on Ruby 2.7.0.
|
14
|
+
(Jon Rowe, #392)
|
15
|
+
|
16
|
+
### 3.9.0 / 2019-10-07
|
17
|
+
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.8.3...v3.9.0)
|
18
|
+
|
19
|
+
*NO CHANGES*
|
20
|
+
|
21
|
+
Version 3.9.0 was released to allow other RSpec gems to release 3.9.0.
|
22
|
+
|
23
|
+
### 3.8.3 / 2019-10-02
|
24
|
+
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.8.2...v3.8.3)
|
25
|
+
|
26
|
+
Bug Fixes:
|
27
|
+
|
28
|
+
* Escape \r when outputting strings inside arrays.
|
29
|
+
(Tomita Masahiro, Jon Rowe, #378)
|
30
|
+
* Ensure that optional hash arguments are recognised correctly vs keyword
|
31
|
+
arguments. (Evgeni Dzhelyov, #366)
|
32
|
+
|
33
|
+
### 3.8.2 / 2019-06-10
|
34
|
+
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.8.1...v3.8.2)
|
35
|
+
|
36
|
+
Bug Fixes:
|
37
|
+
|
38
|
+
* Ensure that an empty hash is recognised as empty keyword arguments when
|
39
|
+
applicable. (Thomas Walpole, #375)
|
40
|
+
* Ensure that diffing truthy values produce diffs consistently.
|
41
|
+
(Lucas Nestor, #377)
|
42
|
+
|
43
|
+
### 3.8.1 / 2019-03-03
|
44
|
+
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.8.0...v3.8.1)
|
45
|
+
|
46
|
+
Bug Fixes:
|
47
|
+
|
48
|
+
* Ensure that inspecting a `SimpleDelegator` based object works regardless of
|
49
|
+
visibilty of the `__getobj__` method. (Jon Rowe, #369)
|
50
|
+
|
1
51
|
### 3.8.0 / 2018-08-04
|
2
52
|
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.7.1...v3.8.0)
|
3
53
|
|
data/lib/rspec/support.rb
CHANGED
@@ -139,7 +139,7 @@ module RSpec
|
|
139
139
|
end
|
140
140
|
end
|
141
141
|
|
142
|
-
# The Differ is only needed when a
|
142
|
+
# The Differ is only needed when a spec fails with a diffable failure.
|
143
143
|
# In the more common case of all specs passing or the only failures being
|
144
144
|
# non-diffable, we can avoid the extra cost of loading the differ, diff-lcs,
|
145
145
|
# pp, etc by avoiding an unnecessary require. Instead, autoload will take
|
data/lib/rspec/support/differ.rb
CHANGED
@@ -11,7 +11,7 @@ module RSpec
|
|
11
11
|
def diff(actual, expected)
|
12
12
|
diff = ""
|
13
13
|
|
14
|
-
|
14
|
+
unless actual.nil? || expected.nil?
|
15
15
|
if all_strings?(actual, expected)
|
16
16
|
if any_multiline_strings?(actual, expected)
|
17
17
|
diff = diff_as_string(coerce_to_string(actual), coerce_to_string(expected))
|
@@ -97,7 +97,7 @@ module RSpec
|
|
97
97
|
if Array === entry
|
98
98
|
entry.inspect
|
99
99
|
else
|
100
|
-
entry.to_s.gsub("\n", "\\n")
|
100
|
+
entry.to_s.gsub("\n", "\\n").gsub("\r", "\\r")
|
101
101
|
end
|
102
102
|
end
|
103
103
|
end
|
@@ -5,31 +5,11 @@ module RSpec
|
|
5
5
|
# Reduce allocations by storing constants.
|
6
6
|
UTF_8 = "UTF-8"
|
7
7
|
US_ASCII = "US-ASCII"
|
8
|
-
|
9
|
-
# In MRI 2.1 'invalid: :replace' changed to also replace an invalid byte sequence
|
10
|
-
# see https://github.com/ruby/ruby/blob/v2_1_0/NEWS#L176
|
11
|
-
# https://www.ruby-forum.com/topic/6861247
|
12
|
-
# https://twitter.com/nalsh/status/553413844685438976
|
13
|
-
#
|
14
|
-
# For example, given:
|
15
|
-
# "\x80".force_encoding("Emacs-Mule").encode(:invalid => :replace).bytes.to_a
|
16
|
-
#
|
17
|
-
# On MRI 2.1 or above: 63 # '?'
|
18
|
-
# else : 128 # "\x80"
|
19
|
-
#
|
8
|
+
|
20
9
|
# Ruby's default replacement string is:
|
21
10
|
# U+FFFD ("\xEF\xBF\xBD"), for Unicode encoding forms, else
|
22
11
|
# ? ("\x3F")
|
23
12
|
REPLACE = "?"
|
24
|
-
ENCODE_UNCONVERTABLE_BYTES = {
|
25
|
-
:invalid => :replace,
|
26
|
-
:undef => :replace,
|
27
|
-
:replace => REPLACE
|
28
|
-
}
|
29
|
-
ENCODE_NO_CONVERTER = {
|
30
|
-
:invalid => :replace,
|
31
|
-
:replace => REPLACE
|
32
|
-
}
|
33
13
|
|
34
14
|
def initialize(string, encoding=nil)
|
35
15
|
@encoding = encoding
|
@@ -112,9 +92,25 @@ module RSpec
|
|
112
92
|
string = remove_invalid_bytes(string)
|
113
93
|
string.encode(@encoding)
|
114
94
|
rescue Encoding::UndefinedConversionError, Encoding::InvalidByteSequenceError
|
115
|
-
|
95
|
+
# Originally defined as a constant to avoid uneeded allocations, this hash must
|
96
|
+
# be defined inline (without {}) to avoid warnings on Ruby 2.7
|
97
|
+
#
|
98
|
+
# In MRI 2.1 'invalid: :replace' changed to also replace an invalid byte sequence
|
99
|
+
# see https://github.com/ruby/ruby/blob/v2_1_0/NEWS#L176
|
100
|
+
# https://www.ruby-forum.com/topic/6861247
|
101
|
+
# https://twitter.com/nalsh/status/553413844685438976
|
102
|
+
#
|
103
|
+
# For example, given:
|
104
|
+
# "\x80".force_encoding("Emacs-Mule").encode(:invalid => :replace).bytes.to_a
|
105
|
+
#
|
106
|
+
# On MRI 2.1 or above: 63 # '?'
|
107
|
+
# else : 128 # "\x80"
|
108
|
+
#
|
109
|
+
string.encode(@encoding, :invalid => :replace, :undef => :replace, :replace => REPLACE)
|
116
110
|
rescue Encoding::ConverterNotFoundError
|
117
|
-
|
111
|
+
# Originally defined as a constant to avoid uneeded allocations, this hash must
|
112
|
+
# be defined inline (without {}) to avoid warnings on Ruby 2.7
|
113
|
+
string.dup.force_encoding(@encoding).encode(:invalid => :replace, :replace => REPLACE)
|
118
114
|
end
|
119
115
|
|
120
116
|
# Prevents raising ArgumentError
|
@@ -77,14 +77,19 @@ module RSpec
|
|
77
77
|
given_kw_args - @allowed_kw_args
|
78
78
|
end
|
79
79
|
|
80
|
+
# If the last argument is Hash, Ruby will treat only symbol keys as keyword arguments
|
81
|
+
# the rest will be grouped in another Hash and passed as positional argument.
|
80
82
|
def has_kw_args_in?(args)
|
81
|
-
Hash === args.last &&
|
83
|
+
Hash === args.last &&
|
84
|
+
could_contain_kw_args?(args) &&
|
85
|
+
(args.last.empty? || args.last.keys.any? { |x| x.is_a?(Symbol) })
|
82
86
|
end
|
83
87
|
|
84
88
|
# Without considering what the last arg is, could it
|
85
89
|
# contain keyword arguments?
|
86
90
|
def could_contain_kw_args?(args)
|
87
91
|
return false if args.count <= min_non_kw_args
|
92
|
+
|
88
93
|
@allows_any_kw_args || @allowed_kw_args.any?
|
89
94
|
end
|
90
95
|
|
@@ -357,7 +362,14 @@ module RSpec
|
|
357
362
|
|
358
363
|
def split_args(*args)
|
359
364
|
kw_args = if @signature.has_kw_args_in?(args)
|
360
|
-
args.pop
|
365
|
+
last = args.pop
|
366
|
+
non_kw_args = last.reject { |k, _| k.is_a?(Symbol) }
|
367
|
+
if non_kw_args.empty?
|
368
|
+
last.keys
|
369
|
+
else
|
370
|
+
args << non_kw_args
|
371
|
+
last.select { |k, _| k.is_a?(Symbol) }.keys
|
372
|
+
end
|
361
373
|
else
|
362
374
|
[]
|
363
375
|
end
|
@@ -90,6 +90,15 @@ module RSpec
|
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
|
+
if RUBY_VERSION.to_f >= 2.7
|
94
|
+
def supports_taint?
|
95
|
+
false
|
96
|
+
end
|
97
|
+
else
|
98
|
+
def supports_taint?
|
99
|
+
true
|
100
|
+
end
|
101
|
+
end
|
93
102
|
ripper_requirements = [ComparableVersion.new(RUBY_VERSION) >= '1.9.2']
|
94
103
|
|
95
104
|
ripper_requirements.push(false) if Ruby.rbx?
|
@@ -59,10 +59,15 @@ module RSpec
|
|
59
59
|
l =~ %r{bundler/source/rubygems} ||
|
60
60
|
# Ignore bundler + rubygems warning.
|
61
61
|
l =~ %r{site_ruby/\d\.\d\.\d/rubygems} ||
|
62
|
+
l =~ %r{jruby-\d\.\d\.\d\.\d/lib/ruby/stdlib/rubygems} ||
|
62
63
|
# This is required for windows for some reason
|
63
64
|
l =~ %r{lib/bundler/rubygems} ||
|
64
65
|
# This is a JRuby file that generates warnings on 9.0.3.0
|
65
|
-
l =~ %r{lib/ruby/stdlib/jar}
|
66
|
+
l =~ %r{lib/ruby/stdlib/jar} ||
|
67
|
+
# This is a JRuby file that generates warnings on 9.1.7.0
|
68
|
+
l =~ %r{org/jruby/RubyKernel\.java} ||
|
69
|
+
# Remove blank lines
|
70
|
+
l == "" || l.nil?
|
66
71
|
end.join("\n")
|
67
72
|
end
|
68
73
|
|
@@ -38,6 +38,10 @@ module RSpec
|
|
38
38
|
def write(line)
|
39
39
|
return if line =~ %r{^\S+/gems/\S+:\d+: warning:} # http://rubular.com/r/kqeUIZOfPG
|
40
40
|
|
41
|
+
# Ruby 2.7.0 complains about hashes used in place of keyword arguments
|
42
|
+
# Aruba 0.14.2 uses this internally triggering that here
|
43
|
+
return if line =~ %r{lib/ruby/2\.7\.0/fileutils\.rb:622: warning:}
|
44
|
+
|
41
45
|
@orig_stderr.write(line)
|
42
46
|
@output_tracker.write(line)
|
43
47
|
end
|
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.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Chelimsky
|
@@ -48,22 +48,8 @@ cert_chain:
|
|
48
48
|
ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
|
49
49
|
F3MdtaDehhjC
|
50
50
|
-----END CERTIFICATE-----
|
51
|
-
date:
|
51
|
+
date: 2019-12-30 00:00:00.000000000 Z
|
52
52
|
dependencies:
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: bundler
|
55
|
-
requirement: !ruby/object:Gem::Requirement
|
56
|
-
requirements:
|
57
|
-
- - "~>"
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: '1.3'
|
60
|
-
type: :development
|
61
|
-
prerelease: false
|
62
|
-
version_requirements: !ruby/object:Gem::Requirement
|
63
|
-
requirements:
|
64
|
-
- - "~>"
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: '1.3'
|
67
53
|
- !ruby/object:Gem::Dependency
|
68
54
|
name: rake
|
69
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -135,7 +121,12 @@ files:
|
|
135
121
|
homepage: https://github.com/rspec/rspec-support
|
136
122
|
licenses:
|
137
123
|
- MIT
|
138
|
-
metadata:
|
124
|
+
metadata:
|
125
|
+
bug_tracker_uri: https://github.com/rspec/rspec-support/issues
|
126
|
+
changelog_uri: https://github.com/rspec/rspec-support/blob/v3.9.2/Changelog.md
|
127
|
+
documentation_uri: https://rspec.info/documentation/
|
128
|
+
mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
|
129
|
+
source_code_uri: https://github.com/rspec/rspec-support
|
139
130
|
post_install_message:
|
140
131
|
rdoc_options:
|
141
132
|
- "--charset=UTF-8"
|
@@ -152,9 +143,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
143
|
- !ruby/object:Gem::Version
|
153
144
|
version: '0'
|
154
145
|
requirements: []
|
155
|
-
|
156
|
-
rubygems_version: 2.6.13
|
146
|
+
rubygems_version: 3.1.2
|
157
147
|
signing_key:
|
158
148
|
specification_version: 4
|
159
|
-
summary: rspec-support-3.
|
149
|
+
summary: rspec-support-3.9.2
|
160
150
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|