|
- module KGrader
- class Task
-
- def initialize(filesystem, course, semester, assignment)
- @fs = filesystem
- @course = course
- @semester = semester
-
- @assignment = @course.assignment assignment
- @students = @course.roster(@semester).students
- end
-
- def grade(options = {})
- students = @students
- students &= options[:students] unless options[:students].nil?
-
- due = options.fetch(:due, Time.now)
- fetch = options.fetch(:fetch, true)
- regrade = options.fetch(:regrade, false)
-
- # TODO
- puts "[grading]"
- puts "course => #{@course.name}"
- puts "semester => #{@semester}"
- puts "assignment => #{@assignment.name}"
- puts "students => #{students.join ', '}"
- puts "due => #{due}"
- puts "fetch => #{fetch}"
- puts "regrade => #{regrade}"
- puts
-
- fetch_students students if fetch
- end
-
- def commit(options = {})
- students = @students
- students &= options[:students] unless options[:students].nil?
-
- # TODO
- puts "[committing]"
- puts "course => #{@course.name}"
- puts "semester => #{@semester}"
- puts "assignment => #{@assignment.name}"
- puts "students => #{students.join ', '}"
- end
-
- private
- def fetch_students(students)
- students.each do |student|
- @course.backend.fetch @semester, @assignment.id, student
- end
- end
- end
- end
|