class Minitest::NyanCat
Attributes
output[R]
Public Class Methods
new(io)
click to toggle source
# 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
nyan!()
click to toggle source
# File lib/minitest/nyan_cat_plugin.rb, line 33 def self.nyan! @nyan = true end
nyan?()
click to toggle source
# File lib/minitest/nyan_cat_plugin.rb, line 37 def self.nyan? @nyan ||= false end
Public Instance Methods
method_missing(msg, *args)
click to toggle source
# File lib/minitest/nyan_cat_plugin.rb, line 79 def method_missing(msg, *args) output.send(msg, *args) end
print(o)
click to toggle source
# 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)
click to toggle source
# 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 # Red background with white chars output.puts "#{ESC}41m#{ESC}37m#{summary}#{NND}\n" elsif pending_count > 0 # Gray background with white chars output.puts "#{ESC}43m#{ESC}40m#{summary}#{NND}\n" else # Green background with white chars output.puts "#{ESC}42m#{ESC}37m#{summary}#{NND}\n" end elsif o.first =~ /runs/ else output.puts(o) end end
Private Instance Methods
failure_color(text)
click to toggle source
Override to make it work with Minitest
# File lib/minitest/nyan_cat_plugin.rb, line 106 def failure_color(text) "#{ESC}31m#{text}#{NND}" end
pending_color(text)
click to toggle source
Override to make it work with Minitest
# File lib/minitest/nyan_cat_plugin.rb, line 101 def pending_color(text) "#{ESC}33m#{text}#{NND}" end
scoreboard()
click to toggle source
Override to make it work with Minitest
# File lib/minitest/nyan_cat_plugin.rb, line 111 def scoreboard padding = @example_count.to_s.length [ @current.to_s.rjust(padding), success_color(@passing_count.to_s.rjust(padding)), failure_color(@failure_count.to_s.rjust(padding)), pending_color(@pending_count.to_s.rjust(padding)) ] end
success_color(text)
click to toggle source
Override to make it work with Minitest
# File lib/minitest/nyan_cat_plugin.rb, line 96 def success_color(text) "#{ESC}32m#{text}#{NND}" end
total_count()
click to toggle source
Hack to get the total number of assertions
# File lib/minitest/nyan_cat_plugin.rb, line 86 def total_count Minitest::Runnable.runnables.map(&:runnable_methods).flatten.size end
wrap(text, code_or_symbol)
click to toggle source
Override method since it assumes RSpec is used
# File lib/minitest/nyan_cat_plugin.rb, line 91 def wrap(text, code_or_symbol) text end