Class: ProgScorer::CLI
- Inherits:
-
Thor
- Object
- Thor
- ProgScorer::CLI
- Defined in:
- lib/prog_scorer.rb
Instance Method Summary collapse
- #init(report_number, report_name) ⇒ Object
- #score(compiler, report_number, report_name = "*", student_number = "*") ⇒ Object
Instance Method Details
#init(report_number, report_name) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/prog_scorer.rb', line 10 def init(report_number, report_name) if(report_number && report_name) mkdir("#{report_number}") if(mkdir("#{report_number}/#{report_name}")) mkdir("#{report_number}/#{report_name}/outputs") mkdir("#{report_number}/#{report_name}/diff") mkdir("#{report_number}/#{report_name}/src") mkdir("#{report_number}/#{report_name}/tmp") mkdir("#{report_number}/#{report_name}/testdata") mkdir("#{report_number}/#{report_name}/testdata/test1") system("touch #{report_number}/#{report_name}/testdata/test1/in.txt") system("touch #{report_number}/#{report_name}/testdata/test1/exp.txt") system("touch #{report_number}/#{report_name}/testdata/test1/exp.txt") else p "ERROR: '#{report_name}' is already exist" end else p "ERROR: Statement argument missing" end end |
#score(compiler, report_number, report_name = "*", student_number = "*") ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/prog_scorer.rb', line 34 def score(compiler, report_number, report_name="*", student_number="*") if(compiler == "gcc") language = {"ext" => "c", "command" => "gcc"} elsif(compiler == "g++") language = {"ext" => "cpp", "command" => "g++"} else puts "#{"error".colorize(:red)} :コマンド引数が正しくありません" return end root_dirs = Dir.glob("#{report_number}/#{report_name}") for root_dir in root_dirs do report_name = root_dir.split("/")[-1] p dir = "#{root_dir}/src/#{student_number}.#{language["ext"]}" score = Score.new(report_number, report_name) Dir.glob(dir).each do |file| system("cp #{file} #{root_dir}/tmp/#{report_name}.#{language["ext"]}") #system("gcc #{file} #{main_filename}") test_files = [] student_number = Pathname(file).basename(".*") Dir.glob("#{root_dir}/tmp/*.#{language["ext"]}").each do |file| test_files.append(file) end score.compile(language["command"], test_files, student_number) end score.write_file() end end |