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.

41 lignes
878 B

  1. module KGrader
  2. class Course
  3. attr_reader :name
  4. def initialize(filesystem, name)
  5. @fs = filesystem
  6. @name = name
  7. @config = @fs.load @fs.course_config(@name)
  8. @rosters = {}
  9. @assignments = {}
  10. rescue FilesystemError
  11. raise CourseError, "unknown or invalid course: #{name}"
  12. end
  13. def roster(semester)
  14. @rosters[semester] ||= Roster.new @fs, self, semester
  15. end
  16. def assignment(name)
  17. @assignments[name] ||= Assignment.new @fs, self, name
  18. end
  19. def task(semester, assignment)
  20. Task.new @fs, self, semester, assignment
  21. end
  22. def rosters
  23. @fs.semesters(@name).map! { |semester| roster semester }
  24. end
  25. def assignments
  26. @fs.assignments(@name).map! { |name| assignment name }
  27. end
  28. def current_semester
  29. KGrader::current_semester @config['semesters']
  30. end
  31. end
  32. end