lib/jldrill/model/Quiz/Statistics.rb in jldrill-0.5.1.7 vs lib/jldrill/model/Quiz/Statistics.rb in jldrill-0.6.0.1

- old
+ new

@@ -1,5 +1,6 @@ +# encoding: utf-8 require 'jldrill/model/Item' require 'jldrill/model/ItemStatus' require 'jldrill/model/Quiz/Timer' require 'jldrill/model/Quiz/LevelStats' require 'jldrill/model/Quiz/Counter' @@ -15,12 +16,13 @@ attr_writer :learned, :reviewed MINIMUM_CONFIDENCE = 0.009 SECONDS_PER_DAY = 60 * 60 * 24 - def initialize(quiz) + def initialize(quiz, binNumber) @quiz = quiz + @binNumber = binNumber @estimate = 0 @correct = 0 @incorrect = 0 @lastTen = [] @inTargetZone = false @@ -35,11 +37,13 @@ @reviewTimer = Timer.new @learnTimer = Timer.new @currentTimer = nil resetConfidence end - + + # Record a result. True means that the item was guessed + # correctly, false means it was incorrect. def record(bool) @lastTen.push(bool) while @lastTen.size > 10 @lastTen.delete_at(0) end @@ -89,11 +93,11 @@ def recordReviewRate(item) @reviewRateSum += item.schedule.reviewRate end def reviewBin - return @quiz.contents.bins[4] + return @quiz.contents.bins[@binNumber] end def size return reviewBin.length end @@ -123,12 +127,11 @@ end return dCounter end def correct(item) - # currently only level 4 items are reviewed - if item.bin != 4 + if item.bin != @binNumber return end @correct += 1 @reviewed += 1 recordReviewRate(item) @@ -140,11 +143,10 @@ reEstimate calculateConfidence(true) end def incorrect(item) - # currently only level 4 items are reviewed - if item.bin != 4 + if item.bin != @binNumber return end @incorrect += 1 @reviewed += 1 recordReviewRate(item)