A code autograder for student homework submissions
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

32 lignes
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