class Questionaire

Attributes

source[R]

Public Class Methods

new(source) click to toggle source
# File lib/forgetful/questionaire.rb, line 4
def initialize(source)
  @source = source
end

Public Instance Methods

grade(results) click to toggle source
# File lib/forgetful/questionaire.rb, line 19
def grade(results)
  source.write(update(reminders, results))
end
questions() click to toggle source
# File lib/forgetful/questionaire.rb, line 8
def questions
  i = 0
  reminders.map    { |reminder|    pair = [reminder, i]; i+=1; pair }.
            select { |reminder, i| reminder.due_on <= Date.today }.
            map do   |reminder, i|
              { :id       => i,
                :question => reminder.question,
                :answer   => reminder.answer }
            end
end

Private Instance Methods

reminders() click to toggle source
# File lib/forgetful/questionaire.rb, line 34
def reminders
  source.read
end
update(reminders, results) click to toggle source

results is a list of pairs: [id, q]

# File lib/forgetful/questionaire.rb, line 26
def update(reminders, results)
  reminders = reminders.dup
  results.each do |id,q|
    reminders[id] = reminders.fetch(id).next(q)
  end
  reminders
end