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.

28 lines
589 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. private
  19. def rosterfile
  20. @fs.roster @course.name, @semester
  21. end
  22. end
  23. end