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)