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.

42 lignes
828 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. end
  12. def roster(semester)
  13. @rosters[semester] ||= Roster.new @fs, self, semester
  14. end
  15. def task(semester, assignment)
  16. Task.new @fs, self, semester, assignment
  17. end
  18. def rosters
  19. @fs.semesters(@name).map! { |semester| roster semester }
  20. end
  21. def assignments
  22. @fs.assignments @name
  23. end
  24. def current_semester
  25. case @config['semesters']
  26. when 'faspYY'
  27. KGrader::season + DateTime.now.strftime('%y')
  28. when 'faspYYYY'
  29. KGrader::season + DateTime.now.strftime('%Y')
  30. end
  31. end
  32. end
  33. end