A code autograder for student homework submissions
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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