Class: Trollo::Card
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Trollo::Card
- Includes:
- Troller, Workflow
- Defined in:
- lib/trollo/card.rb
Class Method Summary collapse
Instance Method Summary collapse
- #add_label(name) ⇒ Object
- #check ⇒ Object
- #check_due_at ⇒ Object
- #finish_tasks(identifier) ⇒ Object
- #has_label?(name) ⇒ Boolean
- #incomplete_tasks ⇒ Object
- #overdue_tasks ⇒ Object
- #remove_label(name) ⇒ Object
- #remove_tasks(identifier) ⇒ Object
- #set_ordinal ⇒ Object
- #tasks ⇒ Object
Methods included from Troller
Class Method Details
.overdue ⇒ Object
13 14 15 |
# File 'lib/trollo/card.rb', line 13 def self.overdue where('due_at < ?', Time.now) end |
Instance Method Details
#add_label(name) ⇒ Object
57 58 59 60 61 62 63 64 65 |
# File 'lib/trollo/card.rb', line 57 def add_label(name) return if has_label?(name) label = Label.where(name: name).first || Label.create!(name: name) self.labels << label if self.list && self.list.board self.list.board.add_label(name) end end |
#check ⇒ Object
47 48 49 50 |
# File 'lib/trollo/card.rb', line 47 def check check_due_at unarchive! if due_at && archived? end |
#check_due_at ⇒ Object
52 53 54 55 |
# File 'lib/trollo/card.rb', line 52 def check_due_at self.due_at = tasklists.minimum(:due_at) self.save! end |
#finish_tasks(identifier) ⇒ Object
67 68 69 |
# File 'lib/trollo/card.rb', line 67 def finish_tasks(identifier) self.tasklists.each{|tasklist| tasklist.finish_tasks(identifier)} end |
#has_label?(name) ⇒ Boolean
79 80 81 |
# File 'lib/trollo/card.rb', line 79 def has_label?(name) labels.pluck(:name).include?(name) end |
#incomplete_tasks ⇒ Object
39 40 41 |
# File 'lib/trollo/card.rb', line 39 def incomplete_tasks tasks.with_incomplete_state end |
#overdue_tasks ⇒ Object
43 44 45 |
# File 'lib/trollo/card.rb', line 43 def overdue_tasks incomplete_tasks.overdue end |
#remove_label(name) ⇒ Object
75 76 77 |
# File 'lib/trollo/card.rb', line 75 def remove_label(name) self.labels -= Label.where(name: name) end |
#remove_tasks(identifier) ⇒ Object
71 72 73 |
# File 'lib/trollo/card.rb', line 71 def remove_tasks(identifier) self.tasklists.each{|tasklist| tasklist.remove_tasks(identifier)} end |
#set_ordinal ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/trollo/card.rb', line 27 def set_ordinal self.ordinal ||= if list list.cards.length + 1 else 1 end end |
#tasks ⇒ Object
35 36 37 |
# File 'lib/trollo/card.rb', line 35 def tasks Trollo::Task.where(tasklist_id: tasklist_ids) end |