A code autograder for student homework submissions
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

32 righe
636 B

  1. module KGrader
  2. class Roster
  3. attr_reader :semester
  4. def initialize(filesystem, course, semester)
  5. @fs = filesystem
  6. @course = course
  7. @semester = semester
  8. @students = nil
  9. end
  10. def load(filename)
  11. @students = @fs.load(filename).map! { |item| item.first }
  12. FileUtils.mkdir_p File.dirname(rosterfile)
  13. File.write rosterfile, @students.join("\n")
  14. end
  15. def students
  16. @students ||= @fs.load(rosterfile).map! { |item| item.first }
  17. end
  18. def intersect(other)
  19. # TODO
  20. end
  21. private
  22. def rosterfile
  23. @fs.roster @course.name, @semester
  24. end
  25. end
  26. end