class Gaku::Grading::Single::Ordinal

Public Instance Methods

grade_exam() click to toggle source

attr_accessor :criteria

# File lib/gaku/grading/single/ordinal.rb, line 5
def grade_exam
  exam = @gradable
  percentage = Gaku::Grading::Single::Percentage.new(exam, @student, gradable_scope).grade
  @result = { id: @student.id, score: ordinal(percentage['score']) }
end

Private Instance Methods

criteria() click to toggle source
# File lib/gaku/grading/single/ordinal.rb, line 21
def criteria
  if @criteria.values.include? '0'
    @criteria
  else
    @criteria.merge('' => '0')
  end
end
ordinal(percentage) click to toggle source
# File lib/gaku/grading/single/ordinal.rb, line 13
def ordinal(percentage)
  if percentage
    criteria.sort_by(&:last).reverse.find  do |grade, min_points|
      percentage >= min_points.to_i
    end.first
  end
end