A code autograder for student homework submissions
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

39 Zeilen
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