rspec-core 3.6.0 → 3.7.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
  SHA1:
3
- metadata.gz: 33bf2ee1c5d02653b19cece430ba75ac28668df0
4
- data.tar.gz: 5c3e3a2f628543125d4bc02ffff6ee05135e4d1e
3
+ metadata.gz: 0b5c0a6998742c8632fd03444e01f5c63ae7feb1
4
+ data.tar.gz: 28050c825d4aae86612c92b8e6ed6fc6ea843ec4
5
5
  SHA512:
6
- metadata.gz: ca2f7dea70f81dad661b79e61b7b4142989368fddca025d8741a97d5d36037bf598c4dff28a37c4a25bc5116520aa49ace6fbd4cc16b1f7b49bc8f5ef1956435
7
- data.tar.gz: 8d104339ba402be5aec231e5d16e6fcad61cd9b81554593f71f87393b0638f6be590fdbdab06c54b1f981ef9f576eff8db302e32026d8ecabaebb9710d219ba9
6
+ metadata.gz: 3b43ec0a2cd3c5286ca23160861983bc4b66948d1c63449e99ea88dda57329e7091483cb033780d253161fd4b9acc1da7e6d08546e12860864ed018ee2725c65
7
+ data.tar.gz: 6a16b4a35c84eba0dda74004a6cc53b9f9a3e3bc638fb3c30bda49a65230c2296fab5a215a4fb6d42606e99a7f874c3f533181d6eafad45143c3c312f69ebe14
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,23 @@
1
+ ### Development
2
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.7.0...master)
3
+
4
+ ### 3.7.0 / 2017-10-17
5
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.6.0...v3.7.0)
6
+
7
+ Enhancements:
8
+
9
+ * Add `-n` alias for `--next-failure`. (Ian Ker-Seymer, #2434)
10
+ * Improve compatibility with `--enable-frozen-string-literal` option
11
+ on Ruby 2.3+. (Pat Allan, #2425, #2427, #2437)
12
+ * Do not run `:context` hooks for example groups that have been skipped.
13
+ (Devon Estes, #2442)
14
+ * Add `errors_outside_of_examples_count` to the JSON formatter.
15
+ (Takeshi Arabiki, #2448)
16
+
17
+ Bug Fixes:
18
+
19
+ * Improve compatibility with frozen string literal flag. (#2425, Pat Allan)
20
+
1
21
  ### 3.6.0 / 2017-05-04
2
22
  [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.6.0.beta2...v3.6.0)
3
23
 
@@ -161,7 +161,7 @@ module RSpec
161
161
 
162
162
  # @macro define_reader
163
163
  # The file path to use for persisting example statuses. Necessary for the
164
- # `--only-failures` and `--next-failures` CLI options.
164
+ # `--only-failures` and `--next-failure` CLI options.
165
165
  #
166
166
  # @overload example_status_persistence_file_path
167
167
  # @return [String] the file path
@@ -170,7 +170,7 @@ module RSpec
170
170
  define_reader :example_status_persistence_file_path
171
171
 
172
172
  # Sets the file path to use for persisting example statuses. Necessary for the
173
- # `--only-failures` and `--next-failures` CLI options.
173
+ # `--only-failures` and `--next-failure` CLI options.
174
174
  def example_status_persistence_file_path=(value)
175
175
  @example_status_persistence_file_path = value
176
176
  clear_values_derived_from_example_status_persistence_file_path
@@ -413,6 +413,8 @@ module RSpec
413
413
 
414
414
  # rubocop:disable Metrics/AbcSize
415
415
  # rubocop:disable Metrics/MethodLength
416
+
417
+ # Build an object to store runtime configuration options and set defaults
416
418
  def initialize
417
419
  # rubocop:disable Style/GlobalVars
418
420
  @start_time = $_rspec_core_load_started_at || ::RSpec::Core::Time.now
@@ -84,7 +84,7 @@ module RSpec
84
84
  def add_filter(argv, name, hash)
85
85
  hash.each_pair do |k, v|
86
86
  next if CONDITIONAL_FILTERS.include?(k)
87
- tag = name == :inclusion ? k.to_s : "~#{k}"
87
+ tag = name == :inclusion ? k.to_s : "~#{k}".dup
88
88
  tag << ":#{v}" if v.is_a?(String)
89
89
  argv << "--tag" << tag
90
90
  end unless hash.empty?
@@ -87,7 +87,7 @@ module RSpec
87
87
  def inspect_output
88
88
  inspect_output = "\"#{description}\""
89
89
  unless metadata[:description].to_s.empty?
90
- inspect_output << " (#{location})"
90
+ inspect_output += " (#{location})"
91
91
  end
92
92
  inspect_output
93
93
  end
@@ -523,7 +523,7 @@ module RSpec
523
523
  def assign_generated_description
524
524
  if metadata[:description].empty? && (description = generate_description)
525
525
  metadata[:description] = description
526
- metadata[:full_description] << description
526
+ metadata[:full_description] += description
527
527
  end
528
528
  ensure
529
529
  RSpec::Matchers.clear_generated_description
@@ -3,6 +3,7 @@ RSpec::Support.require_rspec_support 'recursive_const_methods'
3
3
  module RSpec
4
4
  module Core
5
5
  # rubocop:disable Metrics/ClassLength
6
+
6
7
  # ExampleGroup and {Example} are the main structural elements of
7
8
  # rspec-core. Consider this example:
8
9
  #
@@ -838,10 +839,10 @@ module RSpec
838
839
  end
839
840
 
840
841
  def self.base_name_for(group)
841
- return "Anonymous" if group.description.empty?
842
+ return "Anonymous".dup if group.description.empty?
842
843
 
843
844
  # Convert to CamelCase.
844
- name = ' ' << group.description
845
+ name = ' ' + group.description
845
846
  name.gsub!(/[^0-9a-zA-Z]+([0-9a-zA-Z])/) do
846
847
  match = ::Regexp.last_match[1]
847
848
  match.upcase!
@@ -5,7 +5,7 @@ module RSpec
5
5
  module Core
6
6
  module Formatters
7
7
  # RSpec's built-in formatters are all subclasses of
8
- # RSpec::Core::Formatters::BaseTextFormatter.
8
+ # RSpec::Core::Formatters::BaseFormatter.
9
9
  #
10
10
  # @see RSpec::Core::Formatters::BaseTextFormatter
11
11
  # @see RSpec::Core::Reporter
@@ -59,6 +59,8 @@ module RSpec
59
59
 
60
60
  DEPRECATION_STREAM_NOTICE = "Pass `--deprecation-out` or set " \
61
61
  "`config.deprecation_stream` to a file for full output."
62
+ TOO_MANY_WARNINGS_NOTICE = "Too many similar deprecation messages " \
63
+ "reported, disregarding further reports. #{DEPRECATION_STREAM_NOTICE}"
62
64
 
63
65
  SpecifiedDeprecationMessage = Struct.new(:type) do
64
66
  def initialize(data)
@@ -71,9 +73,7 @@ module RSpec
71
73
  end
72
74
 
73
75
  def too_many_warnings_message
74
- msg = "Too many similar deprecation messages reported, disregarding further reports. "
75
- msg << DEPRECATION_STREAM_NOTICE
76
- msg
76
+ TOO_MANY_WARNINGS_NOTICE
77
77
  end
78
78
 
79
79
  private
@@ -96,16 +96,14 @@ module RSpec
96
96
  end
97
97
 
98
98
  def to_s
99
- msg = "#{@data.deprecated} is deprecated."
99
+ msg = String.new("#{@data.deprecated} is deprecated.")
100
100
  msg << " Use #{@data.replacement} instead." if @data.replacement
101
- msg << " Called from #{@data.call_site}." if @data.call_site
101
+ msg << " Called from #{@data.call_site}." if @data.call_site
102
102
  msg
103
103
  end
104
104
 
105
105
  def too_many_warnings_message
106
- msg = "Too many uses of deprecated '#{type}'. "
107
- msg << DEPRECATION_STREAM_NOTICE
108
- msg
106
+ "Too many uses of deprecated '#{type}'. #{DEPRECATION_STREAM_NOTICE}"
109
107
  end
110
108
  end
111
109
 
@@ -59,7 +59,9 @@ module RSpec
59
59
  end
60
60
 
61
61
  def print_summary(duration, example_count, failure_count, pending_count)
62
- totals = "#{example_count} example#{'s' unless example_count == 1}, "
62
+ totals = String.new(
63
+ "#{example_count} example#{'s' unless example_count == 1}, "
64
+ )
63
65
  totals << "#{failure_count} failure#{'s' unless failure_count == 1}"
64
66
  totals << ", #{pending_count} pending" if pending_count > 0
65
67
 
@@ -21,7 +21,9 @@ module RSpec
21
21
  end
22
22
 
23
23
  # rubocop:disable Style/ClassVars
24
+ # @private
24
25
  @@converter = NullConverter
26
+
25
27
  begin
26
28
  require 'coderay'
27
29
  RSpec::Support.require_rspec_core 'formatters/syntax_highlighter'
@@ -26,7 +26,8 @@ module RSpec
26
26
  :duration => summary.duration,
27
27
  :example_count => summary.example_count,
28
28
  :failure_count => summary.failure_count,
29
- :pending_count => summary.pending_count
29
+ :pending_count => summary.pending_count,
30
+ :errors_outside_of_examples_count => summary.errors_outside_of_examples_count
30
31
  }
31
32
  @output_hash[:summary_line] = summary.totals_line
32
33
  end
@@ -456,7 +456,9 @@ module RSpec
456
456
  return if RSpec.configuration.dry_run?
457
457
 
458
458
  if scope == :context
459
- run_owned_hooks_for(position, :context, example_or_group)
459
+ unless example_or_group.class.metadata[:skip]
460
+ run_owned_hooks_for(position, :context, example_or_group)
461
+ end
460
462
  else
461
463
  case position
462
464
  when :before then run_example_hooks_for(example_or_group, :before, :reverse_each)
@@ -111,7 +111,7 @@ module RSpec::Core
111
111
  formatted = "\nFailures:\n"
112
112
 
113
113
  failure_notifications.each_with_index do |failure, index|
114
- formatted << failure.fully_formatted(index.next, colorizer)
114
+ formatted += failure.fully_formatted(index.next, colorizer)
115
115
  end
116
116
 
117
117
  formatted
@@ -120,7 +120,7 @@ module RSpec::Core
120
120
  # @return [String] The list of pending examples, fully formatted in the
121
121
  # way that RSpec's built-in formatters emit.
122
122
  def fully_formatted_pending_examples(colorizer=::RSpec::Core::Formatters::ConsoleCodes)
123
- formatted = "\nPending: (Failures listed here are expected and do not affect your suite's status)\n"
123
+ formatted = "\nPending: (Failures listed here are expected and do not affect your suite's status)\n".dup
124
124
 
125
125
  pending_notifications.each_with_index do |notification, index|
126
126
  formatted << notification.fully_formatted(index.next, colorizer)
@@ -232,9 +232,14 @@ module RSpec::Core
232
232
  # RSpec's built-in formatters emit.
233
233
  def fully_formatted(pending_number, colorizer=::RSpec::Core::Formatters::ConsoleCodes)
234
234
  formatted_caller = RSpec.configuration.backtrace_formatter.backtrace_line(example.location)
235
- colorizer.wrap("\n #{pending_number}) #{example.full_description}", :pending) << "\n " <<
236
- Formatters::ExceptionPresenter::PENDING_DETAIL_FORMATTER.call(example, colorizer) <<
237
- "\n" << colorizer.wrap(" # #{formatted_caller}\n", :detail)
235
+
236
+ [
237
+ colorizer.wrap("\n #{pending_number}) #{example.full_description}", :pending),
238
+ "\n ",
239
+ Formatters::ExceptionPresenter::PENDING_DETAIL_FORMATTER.call(example, colorizer),
240
+ "\n",
241
+ colorizer.wrap(" # #{formatted_caller}\n", :detail)
242
+ ].join("")
238
243
  end
239
244
  end
240
245
 
@@ -315,13 +320,15 @@ module RSpec::Core
315
320
  # @api
316
321
  # @return [String] A line summarising the result totals of the spec run.
317
322
  def totals_line
318
- summary = Formatters::Helpers.pluralize(example_count, "example")
319
- summary << ", " << Formatters::Helpers.pluralize(failure_count, "failure")
320
- summary << ", #{pending_count} pending" if pending_count > 0
323
+ summary = Formatters::Helpers.pluralize(example_count, "example") +
324
+ ", " + Formatters::Helpers.pluralize(failure_count, "failure")
325
+ summary += ", #{pending_count} pending" if pending_count > 0
321
326
  if errors_outside_of_examples_count > 0
322
- summary << ", "
323
- summary << Formatters::Helpers.pluralize(errors_outside_of_examples_count, "error")
324
- summary << " occurred outside of examples"
327
+ summary += (
328
+ ", " +
329
+ Formatters::Helpers.pluralize(errors_outside_of_examples_count, "error") +
330
+ " occurred outside of examples"
331
+ )
325
332
  end
326
333
  summary
327
334
  end
@@ -380,7 +387,7 @@ module RSpec::Core
380
387
  "#{colorized_totals_line(colorizer)}\n"
381
388
 
382
389
  unless failed_examples.empty?
383
- formatted << colorized_rerun_commands(colorizer) << "\n"
390
+ formatted += (colorized_rerun_commands(colorizer) + "\n")
384
391
  end
385
392
 
386
393
  formatted
@@ -201,7 +201,7 @@ FILTERING
201
201
  configure_only_failures(options)
202
202
  end
203
203
 
204
- parser.on("--next-failure", "Apply `--only-failures` and abort after one failure.",
204
+ parser.on("-n", "--next-failure", "Apply `--only-failures` and abort after one failure.",
205
205
  " (Equivalent to `--only-failures --fail-fast --order defined`)") do
206
206
  configure_only_failures(options)
207
207
  set_fail_fast(options, 1)
@@ -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.6.0'
6
+ STRING = '3.7.0'
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.0
4
+ version: 3.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Baker
@@ -46,7 +46,7 @@ cert_chain:
46
46
  ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
47
47
  F3MdtaDehhjC
48
48
  -----END CERTIFICATE-----
49
- date: 2017-05-04 00:00:00.000000000 Z
49
+ date: 2017-10-17 00:00:00.000000000 Z
50
50
  dependencies:
51
51
  - !ruby/object:Gem::Dependency
52
52
  name: rspec-support
@@ -54,14 +54,14 @@ dependencies:
54
54
  requirements:
55
55
  - - "~>"
56
56
  - !ruby/object:Gem::Version
57
- version: 3.6.0
57
+ version: 3.7.0
58
58
  type: :runtime
59
59
  prerelease: false
60
60
  version_requirements: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - "~>"
63
63
  - !ruby/object:Gem::Version
64
- version: 3.6.0
64
+ version: 3.7.0
65
65
  - !ruby/object:Gem::Dependency
66
66
  name: cucumber
67
67
  requirement: !ruby/object:Gem::Requirement
@@ -110,14 +110,14 @@ dependencies:
110
110
  requirements:
111
111
  - - "~>"
112
112
  - !ruby/object:Gem::Version
113
- version: 1.0.9
113
+ version: 1.1.1
114
114
  type: :development
115
115
  prerelease: false
116
116
  version_requirements: !ruby/object:Gem::Requirement
117
117
  requirements:
118
118
  - - "~>"
119
119
  - !ruby/object:Gem::Version
120
- version: 1.0.9
120
+ version: 1.1.1
121
121
  - !ruby/object:Gem::Dependency
122
122
  name: mocha
123
123
  requirement: !ruby/object:Gem::Requirement
@@ -277,9 +277,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
277
277
  version: '0'
278
278
  requirements: []
279
279
  rubyforge_project:
280
- rubygems_version: 2.4.5.2
280
+ rubygems_version: 2.6.14
281
281
  signing_key:
282
282
  specification_version: 4
283
- summary: rspec-core-3.6.0
283
+ summary: rspec-core-3.7.0
284
284
  test_files: []
285
285
  has_rdoc:
metadata.gz.sig CHANGED
Binary file