Class: Minitest::NyanCat
- Inherits:
-
Object
show all
- Includes:
- NyanCat::Common
- Defined in:
- lib/minitest/nyan_cat_plugin.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(io) ⇒ NyanCat
Returns a new instance of NyanCat.
26
27
28
29
30
31
|
# File 'lib/minitest/nyan_cat_plugin.rb', line 26
def initialize(io)
@example_count = total_count
@current = @color_index = @passing_count = @failure_count = @pending_count = 0
@example_results = []
@output = io
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(msg, *args) ⇒ Object
79
80
81
|
# File 'lib/minitest/nyan_cat_plugin.rb', line 79
def method_missing(msg, *args)
output.send(msg, *args)
end
|
Instance Attribute Details
#output ⇒ Object
Returns the value of attribute output.
24
25
26
|
# File 'lib/minitest/nyan_cat_plugin.rb', line 24
def output
@output
end
|
Class Method Details
.nyan! ⇒ Object
33
34
35
|
# File 'lib/minitest/nyan_cat_plugin.rb', line 33
def self.nyan!
@nyan = true
end
|
.nyan? ⇒ Boolean
37
38
39
|
# File 'lib/minitest/nyan_cat_plugin.rb', line 37
def self.nyan?
@nyan ||= false
end
|
Instance Method Details
#print(o) ⇒ Object
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/minitest/nyan_cat_plugin.rb', line 41
def print(o)
case o
when "." then
@passing_count += 1
tick PASS
when "E", "F" then
@failure_count += 1
tick FAIL
when "S" then
@pending_count += 1
tick PENDING
else
output.print o
end
end
|
#puts(*o) ⇒ Object
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/minitest/nyan_cat_plugin.rb', line 57
def puts(*o)
if o.first =~ /Finished in (.+)s/
output.puts "\nYou've Nyaned for #{format_duration($1.to_f)}\n".each_char.map {|c| rainbowify(c)}.join
summary = "#{@example_count} example#{'s' unless @example_count == 1}, #{@failure_count} failure#{'s' unless @failure_count == 1}"
summary << ", #{@pending_count} pending" if @pending_count > 0
if @failure_count > 0
output.puts "#{ESC}41m#{ESC}37m#{summary}#{NND}\n"
elsif pending_count > 0
output.puts "#{ESC}43m#{ESC}40m#{summary}#{NND}\n"
else
output.puts "#{ESC}42m#{ESC}37m#{summary}#{NND}\n"
end
elsif o.first =~ /runs/
else
output.puts(o)
end
end
|