Updated koans with changed from src.
This commit is contained in:
@@ -43,6 +43,28 @@ class Object
|
||||
end
|
||||
|
||||
module EdgeCase
|
||||
|
||||
module Color
|
||||
#shamelessly stolen (and modified) from redgreen
|
||||
COLORS = { :clear => 0, :red => 31, :green => 32, :yellow => 33, :blue => 34, :magenta => 35, :cyan => 36 }
|
||||
|
||||
COLORS.each do |color, value|
|
||||
class_eval "def self.#{color}(string); colorize(string, #{value}); end"
|
||||
end
|
||||
|
||||
def self.colorize(string, color_value)
|
||||
if ENV['NO_COLOR']
|
||||
string
|
||||
else
|
||||
color(color_value) + string + color(COLORS[:clear])
|
||||
end
|
||||
end
|
||||
|
||||
def self.color(color_value)
|
||||
"\e[#{color_value}m"
|
||||
end
|
||||
end
|
||||
|
||||
class Sensei
|
||||
attr_reader :failure, :failed_test
|
||||
|
||||
@@ -67,9 +89,9 @@ module EdgeCase
|
||||
def accumulate(test)
|
||||
if test.passed?
|
||||
@pass_count += 1
|
||||
puts " #{test.name} has expanded your awareness."
|
||||
puts Color.green(" #{test.name} has expanded your awareness.")
|
||||
else
|
||||
puts " #{test.name} has damaged your karma."
|
||||
puts Color.red(" #{test.name} has damaged your karma.")
|
||||
@failed_test = test
|
||||
@failure = test.failure
|
||||
throw :edgecase_exit
|
||||
@@ -87,18 +109,19 @@ module EdgeCase
|
||||
def report
|
||||
if failed?
|
||||
puts
|
||||
puts "You have not yet reached enlightenment ..."
|
||||
puts failure.message
|
||||
puts Color.green("You have not yet reached enlightenment ...")
|
||||
puts Color.red(failure.message)
|
||||
puts
|
||||
puts "Please meditate on the following code:"
|
||||
puts Color.green("Please meditate on the following code:")
|
||||
if assert_failed?
|
||||
puts find_interesting_lines(failure.backtrace)
|
||||
#puts find_interesting_lines(failure.backtrace)
|
||||
puts find_interesting_lines(failure.backtrace).collect {|l| Color.red(l) }
|
||||
else
|
||||
puts failure.backtrace
|
||||
puts Color.red(failure.backtrace)
|
||||
end
|
||||
puts
|
||||
end
|
||||
say_something_zenlike
|
||||
puts Color.green(say_something_zenlike)
|
||||
end
|
||||
|
||||
def find_interesting_lines(backtrace)
|
||||
@@ -112,23 +135,24 @@ module EdgeCase
|
||||
def say_something_zenlike
|
||||
puts
|
||||
if !failed?
|
||||
puts "Mountains are again merely mountains"
|
||||
zen_statement = "Mountains are again merely mountains"
|
||||
else
|
||||
case (@pass_count % 10)
|
||||
zen_statement = case (@pass_count % 10)
|
||||
when 0
|
||||
puts "mountains are merely mountains"
|
||||
"mountains are merely mountains"
|
||||
when 1, 2
|
||||
puts "learn the rules so you know how to break them properly"
|
||||
"learn the rules so you know how to break them properly"
|
||||
when 3, 4
|
||||
puts "remember that silence is sometimes the best answer"
|
||||
"remember that silence is sometimes the best answer"
|
||||
when 5, 6
|
||||
puts "sleep is the best meditation"
|
||||
"sleep is the best meditation"
|
||||
when 7, 8
|
||||
puts "when you lose, don't lose the lesson"
|
||||
"when you lose, don't lose the lesson"
|
||||
else
|
||||
puts "things are not what they appear to be: nor are they otherwise"
|
||||
"things are not what they appear to be: nor are they otherwise"
|
||||
end
|
||||
end
|
||||
zen_statement
|
||||
end
|
||||
end
|
||||
|
||||
@@ -168,7 +192,7 @@ module EdgeCase
|
||||
|
||||
def run_tests(accumulator)
|
||||
puts
|
||||
puts "Thinking #{self}"
|
||||
puts Color.green("Thinking #{self}")
|
||||
testmethods.each do |m|
|
||||
self.run_test(m, accumulator) if Koan.test_pattern =~ m.to_s
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user