class Sm2::Fact
Constants
Attributes
easiness_factor[R]
interval[R]
repetition[R]
Public Class Methods
new(easiness_factor: nil, repetition: nil, interval: nil)
click to toggle source
# File lib/sm2/fact.rb, line 16 def initialize(easiness_factor: nil, repetition: nil, interval: nil) @easiness_factor = easiness_factor || 2.5 @repetition = repetition || 0 @interval = interval end
Public Instance Methods
next_interval(grade)
click to toggle source
# File lib/sm2/fact.rb, line 22 def next_interval(grade) grade = MAX_GRADE if grade > MAX_GRADE if grade >= 3 if repetition == 0 @interval = 1 @repetition = 1 elsif repetition == 1 @interval = 6 @repetition = 2 else @interval = (interval * easiness_factor).round @repetition = repetition + 1 end else @repetition = 0 @interval = 1 end @easiness_factor = (easiness_factor + D_EF[grade]).round(2) @easiness_factor = easiness_factor < 1.3 ? 1.3 : easiness_factor return interval end