class Tryouts; module CLI # = Run # # The logic bin/tryouts uses for running tryouts. class Run < Drydock::Command def init @tryouts_globs = [GYMNASIUM_GLOB, File.join(Dir.pwd, '*_tryouts.rb')] end def dreams load_available_tryouts_files if @global.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 run if @global.verbose > 0 puts "RUBY #{RUBY_VERSION} - #{RUBY_PLATFORM}" end load_available_tryouts_files successes = [] Tryouts.instances.each_pair do |group,tryouts_inst| puts '', '-'*60 unless @global.quiet puts group puts " #{tryouts_inst.paths.join("\n ")}" if @global.verbose > 0 tryouts_inst.tryouts.each_pair do |name,to| to.run to.report STDOUT.flush successes << to.success? end end unless successes.member?(false) puts $/, "All your dreams came true" unless @global.quiet end end def list load_available_tryouts_files ##if @global.verbose > 2 ## puts Tryouts.instances.to_yaml # BUG: Raises "can't dump anonymous class Class" ##else Tryouts.instances.each_pair do |n,tryouts_inst| puts n if @global.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 end private 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 { |file| Tryouts.parse_file file } puts @tryouts_files if @global.verbose > 0 end end end; end