Autolab
Autolab copied to clipboard
Update documentation for hooks
Course Hooks
-
<lab>
Average (documented) - courseAverage (documented)
- gradebookMessage -- unused, currently configured via
gb_message
(course settings)
Assessment Hooks
- handout
- autogradeDone
- raw_score (documented)
- listOptions
- scoreboardHeader
- createScoreboardEntry
- scoreboardOrderSubmissions
- autogradeInputFiles
- parseAutoresult
- modifySubmissionScores (documented)
- checkMimeType (documented)
Other undocumented features
- local_submit
- log_submit
createScoreboardEntry
and scoreboardOrderSubmissions
as used by 15213
# createScoreboardEntry - Return the entries for a scoreboard row
def createScoreboardEntry(scores, autoresult)
defused = 0
explosions = 0
scores.each_pair do |name, value|
if name == "explosion"
explosions = value.to_i()
else
defused += value.to_i()
end
end
totalscore = raw_score(scores)
[defused, explosions, totalscore]
end
# scoreboardOrderSubmissions - Give sorting rules for scoreboard entries.
def scoreboardOrderSubmissions(a, b)
# Entry A ranks higher than entry B if it has more defused phases.
rank = a[:entry][0] <=> b[:entry][0]
if rank != 0
return rank
end
# If defused phases are equal, entry A ranks higher than entry
# B if it has _fewer_ explosions.
rank = a[:entry][1] <=> b[:entry][1]
if rank != 0
return -rank
end
# As a final tiebreaker, earlier submissions rank higher.
-(a[:time] <=> b[:time])
end