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
#backtrace(event) ⇒ Object
28
29
30
31
32
33
34
|
# File 'lib/peck/notifiers/default.rb', line 28
def backtrace(event)
if Peck.clean_backtrace == false
backtrace = event.exception.backtrace
else
backtrace = clean_backtrace(event.exception.backtrace)
end
end
|
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
81
82
83
|
# File 'lib/peck/notifiers/default.rb', line 81
def install_at_exit
at_exit { write }
end
|
#runtime_in_seconds ⇒ Object
66
67
68
69
|
# File 'lib/peck/notifiers/default.rb', line 66
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
|
75
76
77
78
79
|
# File 'lib/peck/notifiers/default.rb', line 75
def write
puts if Peck.counter.ran > 0
write_events
write_stats
end
|
#write_event(number, event) ⇒ Object
50
51
52
53
54
55
56
57
|
# File 'lib/peck/notifiers/default.rb', line 50
def write_event(number, event)
case event.exception
when Exception
write_exception(number, event)
else
raise ArgumentError, "Don't know how to display event `#{event.expectation.class.name}'"
end
end
|
#write_events ⇒ Object
59
60
61
62
63
64
|
# File 'lib/peck/notifiers/default.rb', line 59
def write_events
Peck.all_events.each_with_index do |event, index|
number = index + 1
write_event(number, event)
end
end
|
#write_exception(number, event) ⇒ Object
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/peck/notifiers/default.rb', line 36
def write_exception(number, event)
puts " #{number}) #{event.spec.label}\n\n"
backtrace = backtrace(event)
parts = []
unless event.exception.message.nil? || event.exception.message == ''
parts << " #{event.exception.message}"
end
parts << "\t#{backtrace.join("\n\t")}"
parts << nil
puts parts.join("\n\n")
end
|
#write_stats ⇒ Object
71
72
73
|
# File 'lib/peck/notifiers/default.rb', line 71
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
|