Class: ActiveRecall::Deck
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- ActiveRecall::Deck
- Includes:
- Base, Enumerable
- Defined in:
- lib/active_recall/models/deck.rb
Class Method Summary collapse
Instance Method Summary collapse
- #<<(source) ⇒ Object
- #==(other) ⇒ Object
- #_items ⇒ Object
- #box(number) ⇒ Object
- #delete(source) ⇒ Object
- #each ⇒ Object
- #expired ⇒ Object
- #failed ⇒ Object
- #known ⇒ Object
- #last ⇒ Object
- #next ⇒ Object
- #review ⇒ Object
- #source_class ⇒ Object
- #untested ⇒ Object
Class Method Details
.add_deck(user) ⇒ Object
35 36 37 |
# File 'lib/active_recall/models/deck.rb', line 35 def self.add_deck(user) create!(user) end |
Instance Method Details
#<<(source) ⇒ Object
29 30 31 32 33 |
# File 'lib/active_recall/models/deck.rb', line 29 def <<(source) raise ArgumentError, "Word already in the stack" if include?(source) items << ActiveRecall::Item.new(deck: self, source_id: source.id, source_type: source.class.name) end |
#==(other) ⇒ Object
21 22 23 |
# File 'lib/active_recall/models/deck.rb', line 21 def ==(other) _items == other end |
#_items ⇒ Object
25 26 27 |
# File 'lib/active_recall/models/deck.rb', line 25 def _items source_class.find(items.pluck(:source_id)) end |
#box(number) ⇒ Object
73 74 75 |
# File 'lib/active_recall/models/deck.rb', line 73 def box(number) source_class.find(items.where(box: number).pluck(:source_id)) end |
#delete(source) ⇒ Object
39 40 41 42 43 |
# File 'lib/active_recall/models/deck.rb', line 39 def delete(source) ActiveRecall::Item .find_by(deck: self, source_id: source.id, source_type: source.class.name) .destroy end |
#each ⇒ Object
11 12 13 14 15 16 17 18 19 |
# File 'lib/active_recall/models/deck.rb', line 11 def each _items.each do |item| if block_given? yield item else yield item end end end |
#expired ⇒ Object
69 70 71 |
# File 'lib/active_recall/models/deck.rb', line 69 def expired source_class.where(id: items.expired.select(:source_id)) end |
#failed ⇒ Object
61 62 63 |
# File 'lib/active_recall/models/deck.rb', line 61 def failed source_class.where(id: items.failed.select(:source_id)) end |
#known ⇒ Object
65 66 67 |
# File 'lib/active_recall/models/deck.rb', line 65 def known source_class.where(id: items.known.select(:source_id)) end |
#last ⇒ Object
53 54 55 |
# File 'lib/active_recall/models/deck.rb', line 53 def last items.order("created_at desc").limit(1).first.try(:source) end |
#next ⇒ Object
49 50 51 |
# File 'lib/active_recall/models/deck.rb', line 49 def next _review.first.try(:source) end |
#review ⇒ Object
45 46 47 |
# File 'lib/active_recall/models/deck.rb', line 45 def review source_class.where(id: _review.select(:source_id)) end |
#source_class ⇒ Object
77 78 79 |
# File 'lib/active_recall/models/deck.rb', line 77 def source_class user.deck_name.to_s.singularize.titleize.constantize end |
#untested ⇒ Object
57 58 59 |
# File 'lib/active_recall/models/deck.rb', line 57 def untested source_class.where(id: items.untested.select(:source_id)) end |