Class: Peck::Notifiers::Default
- Inherits:
-
Base
show all
- Defined in:
- lib/peck/notifiers/default.rb
Constant Summary
Base::BacktraceCleaning::ANONYMOUS_BLOCK_RE, Base::BacktraceCleaning::PECK_PATH
Instance Method Summary
collapse
Methods inherited from Base
use
#clean_backtrace
Constructor Details
Returns a new instance of Default.
8
9
10
|
# File 'lib/peck/notifiers/default.rb', line 8
def initialize
@started_at = @finished_at = Time.now
end
|
Instance Method Details
16
17
18
|
# File 'lib/peck/notifiers/default.rb', line 16
def finished
@finished_at = Time.now
end
|
#finished_specification(spec) ⇒ Object
20
21
22
23
24
25
26
|
# File 'lib/peck/notifiers/default.rb', line 20
def finished_specification(spec)
if spec.passed?
$stdout.write('.')
elsif spec.failed?
$stdout.write('f')
end
end
|
#install_at_exit ⇒ Object
65
66
67
|
# File 'lib/peck/notifiers/default.rb', line 65
def install_at_exit
at_exit { write }
end
|
#runtime_in_seconds ⇒ Object
50
51
52
53
|
# File 'lib/peck/notifiers/default.rb', line 50
def runtime_in_seconds
runtime = @finished_at - @started_at
(runtime * 100).round / 100.0
end
|
12
13
14
|
# File 'lib/peck/notifiers/default.rb', line 12
def started
@started_at = Time.now
end
|
59
60
61
62
63
|
# File 'lib/peck/notifiers/default.rb', line 59
def write
puts if Peck.counter.ran > 0
write_events
write_stats
end
|
#write_event(number, event) ⇒ Object
34
35
36
37
38
39
40
41
|
# File 'lib/peck/notifiers/default.rb', line 34
def write_event(number, event)
case event.exception
when Exception
write_exeception(number, event)
else
raise ArgumentError, "Don't know how to display event `#{event.expectation.class.name}'"
end
end
|
#write_events ⇒ Object
43
44
45
46
47
48
|
# File 'lib/peck/notifiers/default.rb', line 43
def write_events
Peck.all_events.each_with_index do |event, index|
number = index + 1
write_event(number, event)
end
end
|
#write_exeception(number, event) ⇒ Object
28
29
30
31
32
|
# File 'lib/peck/notifiers/default.rb', line 28
def write_exeception(number, event)
puts " #{number}) #{event.spec.label}\n\n"
backtrace = clean_backtrace(event.exception.backtrace)
puts " #{event.exception.message}\n\n\t#{backtrace.join("\n\t")}\n\n"
end
|
#write_stats ⇒ Object
55
56
57
|
# File 'lib/peck/notifiers/default.rb', line 55
def write_stats
puts "#{Peck.counter.ran} #{pluralize(Peck.counter.ran, 'spec')}, #{Peck.counter.failed} #{pluralize(Peck.counter.failed, 'failure')}, finished in #{runtime_in_seconds} seconds."
end
|