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.

39 lignes
778 B

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