Sha256: 63d7ddeee30c3b4eac6267fc947e9a25b18a03e495774f04536e9f03c83be632
Contents?: true
Size: 994 Bytes
Versions: 5
Compression:
Stored size: 994 Bytes
Contents
# frozen_string_literal: true module ActiveRecall class Item < ActiveRecord::Base self.table_name = "active_recall_items" belongs_to :deck scope :failed, -> { where(["box = ? and last_reviewed is not null", 0]) } scope :untested, -> { where(["box = ? and last_reviewed is null", 0]) } def self.expired(current_time: Time.current) where(["box > ? and next_review <= ?", 0, current_time]) end def self.known(current_time: Time.current) where(["box > ? and next_review > ?", 0, current_time]) end def source source_type.constantize.find(source_id) end def right! update!(algorithm_class.right(**scoring_attributes)) end def wrong! update!(algorithm_class.wrong(**scoring_attributes)) end private def algorithm_class ActiveRecall.configuration.algorithm_class end def scoring_attributes attributes.symbolize_keys.slice(:box, :times_right, :times_wrong) end end end
Version data entries
5 entries across 5 versions & 1 rubygems