Skip to content
This repository was archived by the owner on Nov 30, 2024. It is now read-only.

Commit e2171dc

Browse files
committed
Prefer to reuse array, track example state separately.
1 parent fc242aa commit e2171dc

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

lib/rspec/core/formatters/documentation_formatter.rb

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@ class DocumentationFormatter < BaseTextFormatter
1212
def initialize(output)
1313
super
1414
@group_level = 0
15-
@messages = nil
15+
16+
@example_started = false
17+
@messages = []
1618
end
1719

1820
def example_started(_notification)
19-
@messages = []
21+
@example_started = true
2022
end
2123

2224
def example_group_started(notification)
@@ -32,22 +34,28 @@ def example_group_finished(_notification)
3234

3335
def example_passed(passed)
3436
output.puts passed_output(passed.example)
37+
3538
flush_messages
39+
@example_started = false
3640
end
3741

3842
def example_pending(pending)
3943
output.puts pending_output(pending.example,
4044
pending.example.execution_result.pending_message)
45+
4146
flush_messages
47+
@example_started = false
4248
end
4349

4450
def example_failed(failure)
4551
output.puts failure_output(failure.example)
52+
4653
flush_messages
54+
@example_started = false
4755
end
4856

4957
def message(notification)
50-
if @messages
58+
if @example_started
5159
@messages << notification.message
5260
else
5361
output.puts "#{current_indentation}#{notification.message}"
@@ -57,12 +65,12 @@ def message(notification)
5765
private
5866

5967
def flush_messages
60-
if @messages
68+
if @messages.any?
6169
@messages.each do |message|
6270
output.puts "#{current_indentation(1)}#{message}"
6371
end
6472

65-
@messages = nil
73+
@messages.clear
6674
end
6775
end
6876

0 commit comments

Comments
 (0)