Sha256: 09cd6a409586472d187a7bdd15082ab73192ae67f8d136ff8f039984b7c377e8

Contents?: true

Size: 625 Bytes

Versions: 10

Compression:

Stored size: 625 Bytes

Contents

class Gaku::Grading::Single::Percentage < Gaku::Grading::Single::BaseMethod

  attr_reader :scores

  def grade_exam
    exam = @gradable

    @scores = []
    @max_score = exam.max_score

    exam.exam_portions.each_with_index do |exam_portion, index|
      ep_score = @student.exam_portion_scores.where(exam_portion_id: exam_portion.id).first_or_create!
      @scores << ep_score.score if ep_score.score
    end

    @result = { id: @student.id, score: formated_score }
  end

  def score
    @scores.inject(:+) / @max_score unless @scores.blank?
  end

  def formated_score
    score.try(:*, 100).try(:round, 3)
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
gaku-0.2.4 core/lib/gaku/grading/single/percentage.rb
gaku_core-0.2.4 lib/gaku/grading/single/percentage.rb
gaku-0.2.3 core/lib/gaku/grading/single/percentage.rb
gaku_core-0.2.3 lib/gaku/grading/single/percentage.rb
gaku-0.2.2 core/lib/gaku/grading/single/percentage.rb
gaku_core-0.2.2 lib/gaku/grading/single/percentage.rb
gaku-0.2.1 core/lib/gaku/grading/single/percentage.rb
gaku_core-0.2.1 lib/gaku/grading/single/percentage.rb
gaku-0.2.0 core/lib/gaku/grading/single/percentage.rb
gaku_core-0.2.0 lib/gaku/grading/single/percentage.rb