Class: Iterm2TabFormatter
- Inherits:
-
RSpec::Core::Formatters::BaseFormatter
- Object
- RSpec::Core::Formatters::BaseFormatter
- Iterm2TabFormatter
show all
- Defined in:
- lib/iterm2_tab_formatter.rb,
lib/iterm2_tab_formatter/base.rb,
lib/iterm2_tab_formatter/version.rb,
lib/iterm2_tab_formatter/controller.rb,
lib/iterm2_tab_formatter/color_parse.rb,
lib/iterm2_tab_formatter/text_formatter.rb
Defined Under Namespace
Classes: Controller, TextFormatter
Constant Summary
collapse
- VERSION =
"0.8.0"
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of Iterm2TabFormatter.
11
12
13
14
15
16
17
18
19
|
# File 'lib/iterm2_tab_formatter.rb', line 11
def initialize(output)
super
colors = {
suite_start: color(:it2tf_neutral),
spec_fail: color(:it2tf_fail),
suite_pass: color(:it2tf_pass)
}
@controller = Iterm2TabFormatter::Controller.new(colors)
end
|
Instance Attribute Details
#controller ⇒ Object
Returns the value of attribute controller.
9
10
11
|
# File 'lib/iterm2_tab_formatter.rb', line 9
def controller
@controller
end
|
Class Method Details
.color_parse(code) ⇒ Object
5
6
7
8
9
10
11
12
|
# File 'lib/iterm2_tab_formatter/color_parse.rb', line 5
def color_parse(code)
regex = /\A#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})\z/i
raise ArgumentError, "Invalid format: #{code}. Use #RRGGBB" unless code.match(regex)
code.scan(regex) do |red, green, blue|
return [red.to_i(16), green.to_i(16), blue.to_i(16)]
end
end
|
Instance Method Details
#dump_summary(duration, example_count, failure_count, pending_count) ⇒ Object
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/iterm2_tab_formatter.rb', line 38
def dump_summary(duration, example_count, failure_count, pending_count)
controller.apply_pass_color if failure_count == 0 && example_count > 0
pass_ratio = 1 - (1.0 * failure_count / example_count)
controller.tab_title = "#{pass_ratio * 100}% passed"
formatter = Iterm2TabFormatter::TextFormatter.new(
duration_seconds: duration,
example_count: example_count,
failure_count: failure_count,
pending_count: pending_count,
finish_time: Time.now
)
window_title = formatter.status
window_title << ' - '
window_title << formatter.window_title
window_title << ' - '
window_title << formatter.duration
window_title << ' - Finished at '
window_title << formatter.finished_at
controller.window_title = window_title
end
|
#example_failed(example) ⇒ Object
26
27
28
29
|
# File 'lib/iterm2_tab_formatter.rb', line 26
def example_failed(example)
super
controller.apply_fail_color
end
|
#example_started(example) ⇒ Object
31
32
33
34
35
36
|
# File 'lib/iterm2_tab_formatter.rb', line 31
def example_started(example)
super
controller.window_title = example.description
controller.tab_title = "#{examples.size - 1}/#{example_count}"
end
|
#start(example_count) ⇒ Object
21
22
23
24
|
# File 'lib/iterm2_tab_formatter.rb', line 21
def start(example_count)
super
controller.apply_start_color
end
|