class Tryouts::CLI::Run
The logic bin/tryouts uses for running tryouts.
= Run
def dreams
$ sergeant dreams [path/2/tryouts]
def dreams load_available_tryouts_files if Tryouts.verbose > 0 puts Tryouts.dreams.to_yaml else Tryouts.dreams.each_pair do |n,dreams| puts n dreams.each_pair do |n, dream| puts " " << n dream.each_pair do |n, drill| puts " " << n end end end end end
def init
def init @tryouts_globs = [GYMNASIUM_GLOB, File.join(Dir.pwd, '*_tryouts.rb')] end
def list
$ sergeant list
def list load_available_tryouts_files Tryouts.instances.each_pair do |n,tryouts_inst| puts n if Tryouts.verbose > 0 puts " #{tryouts_inst.paths.join("\n ")}" end tryouts_inst.tryouts.each_pair do |t2,tryout| puts " " << tryout.name tryout.drills.each do |drill| puts " " << drill.name end end end end
def load_available_tryouts_files
def load_available_tryouts_files @tryouts_files = [] # If file paths were given, check those only. unless @argv.empty? @argv.each do |file| file = File.join(file, '**', '*_tryouts.rb') if File.directory?(file) @tryouts_files += Dir.glob file end # Otherwise check the default globs else @tryouts_globs.each do |glob| @tryouts_files += Dir.glob glob end end @tryouts_files.uniq! # Don't load the same file twice @tryouts_files.each { |f| puts "LOADING: #{f}"} if Tryouts.verbose > 1 @tryouts_files.each { |file| Tryouts.parse_file file } end
def run
$ sergeant run [path/2/tryouts]
def run Tryouts.enable_debug if Drydock.debug? Tryouts.verbose = @global.verbose puts "#{Tryouts.sysinfo.to_s} (#{RUBY_VERSION})" if Tryouts.verbose > 0 load_available_tryouts_files passed, failed = 0, 0 Tryouts.instances.each_pair do |group,tryouts_inst| puts '', ' %-60s'.att(:reverse) % group puts " #{tryouts_inst.paths.join("\n ")}" if Tryouts.verbose > 0 tryouts_inst.tryouts.each_pair do |name,to| to.run to.report STDOUT.flush passed += to.passed failed += to.failed end end unless @global.quiet if (passed == 0 && failed == 0) puts DEV if Tryouts.verbose > 4 msg = " You didn't even try to acheive your dreams :[ " elsif failed == 0 puts PUG if Tryouts.verbose > 4 msg = passed > 1 ? "All %s dreams" : "Your only dream" msg = (" #{msg} came true " % [passed+failed]).color(:green) else puts BUG if Tryouts.verbose > 4 score = (passed.to_f / (passed.to_f+failed.to_f)) * 100 msg = " %s of %s dreams came true (%d%%) ".color(:red) msg = msg % [passed, passed+failed, score.to_i] end puts $/, msg.att(:reverse) end end