rspec-core 3.13.0 → 3.13.3

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.
@@ -136,7 +136,7 @@ module RSpec
136
136
  end
137
137
 
138
138
  def get_expected_failures_for?(ids)
139
- ids_to_run = ids + failed_example_ids
139
+ ids_to_run = all_example_ids & (ids + failed_example_ids)
140
140
  notify(
141
141
  :bisect_individual_run_start,
142
142
  :command => shell_command.repro_command_from(ids_to_run),
@@ -102,6 +102,7 @@ module RSpec
102
102
  private
103
103
 
104
104
  def run_specs(run_descriptor)
105
+ # :nocov: - Executed in a forked process, by integration/bisect_spec
105
106
  $stdout = $stderr = @spec_output
106
107
  formatter = CaptureFormatter.new(run_descriptor.failed_example_ids)
107
108
 
@@ -125,6 +126,7 @@ module RSpec
125
126
  else
126
127
  @channel.send(latest_run_results)
127
128
  end
129
+ # :nocov:
128
130
  end
129
131
  end
130
132
 
@@ -1402,6 +1402,9 @@ module RSpec
1402
1402
  #
1403
1403
  # # included in examples with `:type => :request` metadata
1404
1404
  # config.include(AuthenticationHelpers, :type => :request)
1405
+ #
1406
+ # # included in examples where the `:type` metadata matches a proc condition
1407
+ # config.include(AuthenticationHelpers, :type => proc { |type, _metadata| [:request, :controller].include?(type) })
1405
1408
  # end
1406
1409
  #
1407
1410
  # describe "edit profile", :preferences, :type => :request do
@@ -1594,8 +1597,10 @@ module RSpec
1594
1597
  def requires=(paths)
1595
1598
  directories = ['lib', default_path].select { |p| File.directory? p }
1596
1599
  RSpec::Core::RubyProject.add_to_load_path(*directories)
1597
- paths.each { |path| load_file_handling_errors(:require, path) }
1598
- @requires += paths
1600
+ paths.each { |path|
1601
+ load_file_handling_errors(:require, path)
1602
+ @requires << path
1603
+ }
1599
1604
  end
1600
1605
 
1601
1606
  # @private
@@ -1764,8 +1769,9 @@ module RSpec
1764
1769
  # @private
1765
1770
  RAISE_ERROR_WARNING_NOTIFIER = lambda { |message| raise message }
1766
1771
 
1767
- # Turns warnings into errors. This can be useful when
1772
+ # Turns RSpec warnings into errors. This can be useful when
1768
1773
  # you want RSpec to run in a 'strict' no warning situation.
1774
+ # (Note this does not capture or raise on Ruby warnings).
1769
1775
  #
1770
1776
  # @example
1771
1777
  #
@@ -177,6 +177,7 @@ module RSpec
177
177
  FlatMap.flat_map(config_lines, &:shellsplit)
178
178
  end
179
179
 
180
+ # :nocov:
180
181
  def options_file_as_erb_string(path)
181
182
  if RUBY_VERSION >= '2.6'
182
183
  ERB.new(File.read(path), :trim_mode => '-').result(binding)
@@ -184,6 +185,7 @@ module RSpec
184
185
  ERB.new(File.read(path), nil, '-').result(binding)
185
186
  end
186
187
  end
188
+ # :nocov:
187
189
 
188
190
  def custom_options_file
189
191
  command_line_options[:custom_options_file]
@@ -11,6 +11,7 @@ module RSpec
11
11
 
12
12
  if defined?(::DidYouMean::SpellChecker)
13
13
  # provide probable suggestions
14
+ # :nocov: - not installed on CI
14
15
  def call
15
16
  checker = ::DidYouMean::SpellChecker.new(:dictionary => Dir["spec/**/*.rb"])
16
17
  probables = checker.correct(relative_file_name.sub('./', ''))[0..2]
@@ -18,15 +19,19 @@ module RSpec
18
19
 
19
20
  formats probables
20
21
  end
22
+ # :nocov:
21
23
  else
22
24
  # return a hint if API for ::DidYouMean::SpellChecker not supported
25
+ # :nocov:
23
26
  def call
24
27
  "\nHint: Install the `did_you_mean` gem in order to provide suggestions for similarly named files."
25
28
  end
29
+ # :nocov:
26
30
  end
27
31
 
28
32
  private
29
33
 
34
+ # :nocov:
30
35
  def formats(probables)
31
36
  rspec_format = probables.map { |s, _| "rspec ./#{s}" }
32
37
  red_font(top_and_tail rspec_format)
@@ -41,6 +46,7 @@ module RSpec
41
46
  colorizer = ::RSpec::Core::Formatters::ConsoleCodes
42
47
  colorizer.wrap mytext, :failure
43
48
  end
49
+ # :nocov:
44
50
  end
45
51
  end
46
52
  end
@@ -91,7 +91,7 @@ module RSpec
91
91
  def add_filter(argv, name, hash)
92
92
  hash.each_pair do |k, v|
93
93
  next if CONDITIONAL_FILTERS.include?(k)
94
- tag = name == :inclusion ? k.to_s : "~#{k}".dup
94
+ tag = name == :inclusion ? k.to_s.dup : "~#{k}".dup
95
95
  tag << ":#{v}" if v.is_a?(String)
96
96
  argv << "--tag" << tag
97
97
  end unless hash.empty?
@@ -98,7 +98,7 @@ module RSpec
98
98
  loaded_spec_files = RSpec.configuration.loaded_spec_files
99
99
 
100
100
  Metadata.ascending(metadata) do |meta|
101
- return meta[:location] if loaded_spec_files.include?(meta[:absolute_file_path])
101
+ break meta[:location] if loaded_spec_files.include?(meta[:absolute_file_path])
102
102
  end
103
103
  end
104
104
  end
@@ -202,8 +202,8 @@ module RSpec
202
202
 
203
203
  def split_file_scoped_rules
204
204
  rules_dup = @rules.dup
205
- locations = rules_dup.delete(:locations) { Hash.new([]) }
206
- ids = rules_dup.delete(:ids) { Hash.new([]) }
205
+ locations = rules_dup.delete(:locations) { Hash.new { [] } }
206
+ ids = rules_dup.delete(:ids) { Hash.new { [] } }
207
207
 
208
208
  return locations, ids, self.class.new(rules_dup)
209
209
  end
@@ -180,6 +180,7 @@ module RSpec
180
180
  end
181
181
 
182
182
  # rubocop:disable Lint/RescueException
183
+ # :nocov:
183
184
  if SyntaxError.instance_methods.include?(:detailed_message)
184
185
  def exception_message_string(exception)
185
186
  case exception
@@ -197,6 +198,7 @@ module RSpec
197
198
  "A #{exception.class} for which `exception.message.to_s` raises #{other.class}."
198
199
  end
199
200
  end
201
+ # :nocov:
200
202
  # rubocop:enable Lint/RescueException
201
203
 
202
204
  def exception_lines
@@ -252,7 +254,9 @@ module RSpec
252
254
  rescue SnippetExtractor::NoSuchLineError
253
255
  ["Unable to find matching line in #{file_path}"]
254
256
  rescue SecurityError
257
+ # :nocov: - SecurityError is no longer produced starting in ruby 2.7
255
258
  ["Unable to read failed line"]
259
+ # :nocov:
256
260
  end
257
261
 
258
262
  def find_failed_line
@@ -284,9 +288,11 @@ module RSpec
284
288
  encoded_string(description)
285
289
  end
286
290
  else # for 1.8.7
291
+ # :nocov:
287
292
  def encoded_description(description)
288
293
  description
289
294
  end
295
+ # :nocov:
290
296
  end
291
297
 
292
298
  def exception_backtrace
@@ -93,7 +93,9 @@ module RSpec
93
93
  "# Couldn't get snippet for #{file}"
94
94
  end
95
95
  rescue SecurityError
96
+ # :nocov: - SecurityError is no longer produced starting in ruby 2.7
96
97
  "# Couldn't get snippet for #{file}"
98
+ # :nocov:
97
99
  end
98
100
 
99
101
  # @api private
@@ -461,7 +461,7 @@ module RSpec
461
461
  # TODO: consider making this an error in RSpec 4. For SemVer reasons,
462
462
  # we are only warning in RSpec 3.
463
463
  RSpec.warn_with "WARNING: `around(:context)` hooks are not supported and " \
464
- "behave like `around(:example)."
464
+ "behave like `around(:example)`."
465
465
  end
466
466
 
467
467
  hook = HOOK_TYPES[position][scope].new(block, options)
@@ -47,7 +47,7 @@ module RSpec
47
47
  return nil if line == '-e:1'.freeze
48
48
  line
49
49
  rescue SecurityError
50
- # :nocov:
50
+ # :nocov: - SecurityError is no longer produced starting in ruby 2.7
51
51
  nil
52
52
  # :nocov:
53
53
  end
@@ -185,7 +185,9 @@ module RSpec::Core
185
185
 
186
186
  parser.on('-w', '--warnings', 'Enable ruby warnings') do
187
187
  if Object.const_defined?(:Warning) && Warning.respond_to?(:[]=)
188
+ # :nocov: on older Ruby without Warning
188
189
  Warning[:deprecated] = true
190
+ # :nocov:
189
191
  end
190
192
  $VERBOSE = true
191
193
  end
@@ -59,7 +59,7 @@ module RSpec
59
59
  # executed. If you need to consider hooks as pending as well you can use
60
60
  # the pending metadata as an alternative, e.g.
61
61
  # `it "does something", pending: "message"`.
62
- def pending(message=nil)
62
+ def pending(message=nil, &_block)
63
63
  current_example = RSpec.current_example
64
64
 
65
65
  if block_given?
@@ -47,6 +47,7 @@ module RSpec
47
47
 
48
48
  if RUBY_VERSION < "1.9.0" || Support::Ruby.jruby?
49
49
  # Run RSpec with a clean (empty) environment is not supported
50
+ # :nocov:
50
51
  def with_clean_environment=(_value)
51
52
  raise ArgumentError, "Running in a clean environment is not supported on Ruby versions before 1.9.0"
52
53
  end
@@ -55,6 +56,7 @@ module RSpec
55
56
  def with_clean_environment
56
57
  false
57
58
  end
59
+ # :nocov:
58
60
  else
59
61
  # Run RSpec with a clean (empty) environment.
60
62
  attr_accessor :with_clean_environment
@@ -172,10 +172,11 @@ module RSpec::Core
172
172
  # @private
173
173
  def finish
174
174
  close_after do
175
- stop
175
+ examples_notification = Notifications::ExamplesNotification.new(self)
176
+ stop(examples_notification)
176
177
  notify :start_dump, Notifications::NullNotification
177
- notify :dump_pending, Notifications::ExamplesNotification.new(self)
178
- notify :dump_failures, Notifications::ExamplesNotification.new(self)
178
+ notify :dump_pending, examples_notification
179
+ notify :dump_failures, examples_notification
179
180
  notify :deprecation_summary, Notifications::NullNotification
180
181
  unless mute_profile_output?
181
182
  notify :dump_profile, Notifications::ProfileNotification.new(@duration, @examples,
@@ -197,9 +198,9 @@ module RSpec::Core
197
198
  end
198
199
 
199
200
  # @private
200
- def stop
201
+ def stop(notification)
201
202
  @duration = (RSpec::Core::Time.now - @start).to_f if @start
202
- notify :stop, Notifications::ExamplesNotification.new(self)
203
+ notify :stop, notification
203
204
  end
204
205
 
205
206
  # @private
@@ -3,7 +3,7 @@ module RSpec
3
3
  # Version information for RSpec Core.
4
4
  module Version
5
5
  # Current version of RSpec Core, in semantic versioning format.
6
- STRING = '3.13.0'
6
+ STRING = '3.13.3'
7
7
  end
8
8
  end
9
9
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,23 +1,22 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.13.0
4
+ version: 3.13.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Baker
8
8
  - David Chelimsky
9
9
  - Chad Humphries
10
10
  - Myron Marston
11
- autorequire:
12
11
  bindir: exe
13
12
  cert_chain:
14
13
  - |
15
14
  -----BEGIN CERTIFICATE-----
16
- MIIF1TCCA72gAwIBAgIJAPXjfUbCjdXUMA0GCSqGSIb3DQEBBQUAMIGAMQswCQYD
15
+ MIIFvjCCA6agAwIBAgIJAPXjfUbCjdXVMA0GCSqGSIb3DQEBCwUAMIGAMQswCQYD
17
16
  VQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEO
18
17
  MAwGA1UECgwFUlNwZWMxEzARBgNVBAMMCnJzcGVjLmluZm8xJTAjBgkqhkiG9w0B
19
- CQEWFnJzcGVjQGdvb2dsZWdyb3Vwcy5jb20wHhcNMTQxMjIzMDkzNTIyWhcNMjQx
20
- MjIyMDkzNTIyWjCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24x
18
+ CQEWFnJzcGVjQGdvb2dsZWdyb3Vwcy5jb20wHhcNMjUwMjA2MTE0NjU2WhcNMjYw
19
+ MjA2MTE0NjU2WjCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24x
21
20
  EDAOBgNVBAcMB1NlYXR0bGUxDjAMBgNVBAoMBVJTcGVjMRMwEQYDVQQDDApyc3Bl
22
21
  Yy5pbmZvMSUwIwYJKoZIhvcNAQkBFhZyc3BlY0Bnb29nbGVncm91cHMuY29tMIIC
23
22
  IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsSmjgcHaKlD0jizRJowi2bGI
@@ -31,22 +30,21 @@ cert_chain:
31
30
  Xeh3EVdWY3vMB1pkhPwlsenpcmj5gOzrd54lELOVbCGHCf48iSqeflY2Lhe0pvzK
32
31
  blXCJBDmtrebvus291rM/dHcbEfK1SVd5Wut/n131iouf6dnNCFskFygDcgBbthC
33
32
  gpEMqf80lEmhX59VUsm0Pv6OEo+ZPHBvXPiJA6DShQh9t3YtpwyA8uVDMbT/i32u
34
- 2FUsqZbbJcCmkBrGposCAwEAAaNQME4wHQYDVR0OBBYEFPPvQ5XT0Nvuhi6k+hrW
35
- Vv35J+TeMB8GA1UdIwQYMBaAFPPvQ5XT0Nvuhi6k+hrWVv35J+TeMAwGA1UdEwQF
36
- MAMBAf8wDQYJKoZIhvcNAQEFBQADggIBAIqbQSWH2aAF537DKwAMB8nMFsoe24MD
37
- gtuQAyjTtbH+QBE4N2RdQF/sU7Y3PYR7nqdrCsYc3RxyqM5XXi7I3IYdpfe1RuxY
38
- +pyPzVQsPPDhMlJlCrwJsADnxlpxZlAgxYSLKOan55ihscaAWA90wqRUrf/ZJM36
39
- 8LWCPVn5teIt5aaxZWX68RMxa+AXvpbtJOBwXLkIFk3apD8CX4DhelIdw67DbkUe
40
- ghUd/u62qrnqBTVgditt7OoWIZjzh24/Fda5d0MxZyvLILGOrf5bN4cTbe/q9Cid
41
- Xrik7Upm+mu3y3yQIfrw85xybHq6iNXyYHvCdSrFfCIKrGpd/0CAdmYnJlx59Fk/
42
- UbD3Eyx4psBSkU+WKO0Uf+3zNI7N/nVeNIwU/Ft+l8l7/K+427656c+ZGWDO0Gt/
43
- BeEOSTDKP7qQ1T+JvMrBcBQo+i0cnRT10J1aoV90BhxsvWTRizIbugbaqR6Tq3bj
44
- Akt00cIlNSplL6DenIAKSh5kF7s0tRD0tC3bNkZmNjNGkdoGEcUODEpTB3RHKKiu
45
- e6k2Jg6m00z5vGFQhOnROG/QaUzMA3A3mFBe1RHFo07xd0pFeoeWL3vF69Gx9Jwp
46
- ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
47
- F3MdtaDehhjC
33
+ 2FUsqZbbJcCmkBrGposCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
34
+ HQYDVR0OBBYEFPPvQ5XT0Nvuhi6k+hrWVv35J+TeMA0GCSqGSIb3DQEBCwUAA4IC
35
+ AQBGBr0ll2yLrkO6IeK5Q7qZFnANaUCKfi6Of9VztZJXgKAU5KAQxyOidGktoA5N
36
+ lp+bFKudRkW8jSehqoNaNBdSZ9Bc07EGMXIhUFJZF9rq7Z2SKPwUm6EaSsBK13QR
37
+ U4K6wuaw5ZJSFzklapoGOJRGnFlnNtlhNFY6+tTwCeblwZbcuYGyGY8+Rg7GbyVl
38
+ 3Tr4Gi1aS/qG/MDXKdE8HWm39dmaAMdbw6dg1VBd0JrX2VqH7xvE1dM/D3OlKrNp
39
+ gNFRNJig3Y8qPjocZR0cGkhgZoC9wribWxHSNawZm4CoV3fja2HNx9QyM7BaB+as
40
+ yuqAiBbA7vBcyc8nKATip3mxbyXYXoDD7nmO8JCPP7O/WsgG+U/B2a0kPdvYFoxE
41
+ Q0Js3GtFCuMvL+0rifqdxBOLtu0Pw9q4RvToTJIl2IR6eTgCb82B1hw9qKf7PjuL
42
+ BoEsYjjDhGw6FZvcJG8O6uj7aB+z4aF21YR74UGL7sq/RIPNNez5JI95jTGfqCPy
43
+ 6yo0w3zja3yg28QK3Fj+tbOHeSLv9SDQWi/1jiPprGzbxGvbVvjvX11YZc46vkmY
44
+ AwP+qZPPf97FXXZGEGIYhhHpnj+Ltx9nCetRPiZ4rvYBcXgCWVQSg6eiEofrMwn/
45
+ AKMCABhZ1Y2eATsfMgdkmIZk7JIPZiSi6eUxPiCMP9M/pw==
48
46
  -----END CERTIFICATE-----
49
- date: 2024-02-04 00:00:00.000000000 Z
47
+ date: 2025-02-06 00:00:00.000000000 Z
50
48
  dependencies:
51
49
  - !ruby/object:Gem::Dependency
52
50
  name: rspec-support
@@ -62,118 +60,6 @@ dependencies:
62
60
  - - "~>"
63
61
  - !ruby/object:Gem::Version
64
62
  version: 3.13.0
65
- - !ruby/object:Gem::Dependency
66
- name: cucumber
67
- requirement: !ruby/object:Gem::Requirement
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- version: '1.3'
72
- type: :development
73
- prerelease: false
74
- version_requirements: !ruby/object:Gem::Requirement
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- version: '1.3'
79
- - !ruby/object:Gem::Dependency
80
- name: minitest
81
- requirement: !ruby/object:Gem::Requirement
82
- requirements:
83
- - - "~>"
84
- - !ruby/object:Gem::Version
85
- version: '5.3'
86
- type: :development
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- requirements:
90
- - - "~>"
91
- - !ruby/object:Gem::Version
92
- version: '5.3'
93
- - !ruby/object:Gem::Dependency
94
- name: aruba
95
- requirement: !ruby/object:Gem::Requirement
96
- requirements:
97
- - - "~>"
98
- - !ruby/object:Gem::Version
99
- version: 0.14.9
100
- type: :development
101
- prerelease: false
102
- version_requirements: !ruby/object:Gem::Requirement
103
- requirements:
104
- - - "~>"
105
- - !ruby/object:Gem::Version
106
- version: 0.14.9
107
- - !ruby/object:Gem::Dependency
108
- name: coderay
109
- requirement: !ruby/object:Gem::Requirement
110
- requirements:
111
- - - "~>"
112
- - !ruby/object:Gem::Version
113
- version: 1.1.1
114
- type: :development
115
- prerelease: false
116
- version_requirements: !ruby/object:Gem::Requirement
117
- requirements:
118
- - - "~>"
119
- - !ruby/object:Gem::Version
120
- version: 1.1.1
121
- - !ruby/object:Gem::Dependency
122
- name: mocha
123
- requirement: !ruby/object:Gem::Requirement
124
- requirements:
125
- - - "~>"
126
- - !ruby/object:Gem::Version
127
- version: 0.13.0
128
- type: :development
129
- prerelease: false
130
- version_requirements: !ruby/object:Gem::Requirement
131
- requirements:
132
- - - "~>"
133
- - !ruby/object:Gem::Version
134
- version: 0.13.0
135
- - !ruby/object:Gem::Dependency
136
- name: rr
137
- requirement: !ruby/object:Gem::Requirement
138
- requirements:
139
- - - "~>"
140
- - !ruby/object:Gem::Version
141
- version: 1.0.4
142
- type: :development
143
- prerelease: false
144
- version_requirements: !ruby/object:Gem::Requirement
145
- requirements:
146
- - - "~>"
147
- - !ruby/object:Gem::Version
148
- version: 1.0.4
149
- - !ruby/object:Gem::Dependency
150
- name: flexmock
151
- requirement: !ruby/object:Gem::Requirement
152
- requirements:
153
- - - "~>"
154
- - !ruby/object:Gem::Version
155
- version: 0.9.0
156
- type: :development
157
- prerelease: false
158
- version_requirements: !ruby/object:Gem::Requirement
159
- requirements:
160
- - - "~>"
161
- - !ruby/object:Gem::Version
162
- version: 0.9.0
163
- - !ruby/object:Gem::Dependency
164
- name: thread_order
165
- requirement: !ruby/object:Gem::Requirement
166
- requirements:
167
- - - "~>"
168
- - !ruby/object:Gem::Version
169
- version: 1.1.0
170
- type: :development
171
- prerelease: false
172
- version_requirements: !ruby/object:Gem::Requirement
173
- requirements:
174
- - - "~>"
175
- - !ruby/object:Gem::Version
176
- version: 1.1.0
177
63
  description: BDD for Ruby. RSpec runner and example groups.
178
64
  email: rspec@googlegroups.com
179
65
  executables:
@@ -267,11 +153,10 @@ licenses:
267
153
  - MIT
268
154
  metadata:
269
155
  bug_tracker_uri: https://github.com/rspec/rspec-core/issues
270
- changelog_uri: https://github.com/rspec/rspec-core/blob/v3.13.0/Changelog.md
156
+ changelog_uri: https://github.com/rspec/rspec-core/blob/v3.13.3/Changelog.md
271
157
  documentation_uri: https://rspec.info/documentation/
272
158
  mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
273
159
  source_code_uri: https://github.com/rspec/rspec-core
274
- post_install_message:
275
160
  rdoc_options:
276
161
  - "--charset=UTF-8"
277
162
  require_paths:
@@ -287,8 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
287
172
  - !ruby/object:Gem::Version
288
173
  version: '0'
289
174
  requirements: []
290
- rubygems_version: 3.4.10
291
- signing_key:
175
+ rubygems_version: 3.6.2
292
176
  specification_version: 4
293
- summary: rspec-core-3.13.0
177
+ summary: rspec-core-3.13.3
294
178
  test_files: []
metadata.gz.sig CHANGED
Binary file