A code autograder for student homework submissions
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

28 linhas
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