Class: Ruboty::Todo::Item
- Inherits:
-
Object
- Object
- Ruboty::Todo::Item
- Defined in:
- lib/ruboty/todo/item.rb
Constant Summary collapse
- ATTRIBUTES =
[:id, :title, :status, :deadline_at].freeze
- STATUSES =
[:not_yet, :doing, :done, :deleted].freeze
- EMOTICONS =
{ new: 'new', not_yet: 'memo', doing: 'rocket', done: 'tada', deleted: 'x', }
Instance Method Summary collapse
- #deadline=(deadline) ⇒ Object
- #delete ⇒ Object
- #deleted? ⇒ Boolean
- #doing? ⇒ Boolean
- #done? ⇒ Boolean
- #finish ⇒ Object
- #format(new_item: false) ⇒ Object
-
#initialize(id, params) ⇒ Item
constructor
A new instance of Item.
- #start ⇒ Object
Constructor Details
#initialize(id, params) ⇒ Item
Returns a new instance of Item.
16 17 18 19 20 21 22 |
# File 'lib/ruboty/todo/item.rb', line 16 def initialize(id, params) self.id = id self.status = :not_yet ATTRIBUTES.each do |attr| self.send("#{attr}=".to_sym, params[attr]) if params.key?(attr) end end |
Instance Method Details
#deadline=(deadline) ⇒ Object
48 49 50 |
# File 'lib/ruboty/todo/item.rb', line 48 def deadline=(deadline) self.deadline_at = Time.parse(deadline) rescue nil end |
#delete ⇒ Object
40 41 42 |
# File 'lib/ruboty/todo/item.rb', line 40 def delete self.status = :deleted end |
#deleted? ⇒ Boolean
44 45 46 |
# File 'lib/ruboty/todo/item.rb', line 44 def deleted? self.status == :deleted end |
#doing? ⇒ Boolean
28 29 30 |
# File 'lib/ruboty/todo/item.rb', line 28 def doing? self.status == :doing end |
#done? ⇒ Boolean
36 37 38 |
# File 'lib/ruboty/todo/item.rb', line 36 def done? self.status == :done end |
#finish ⇒ Object
32 33 34 |
# File 'lib/ruboty/todo/item.rb', line 32 def finish self.status = :done end |
#format(new_item: false) ⇒ Object
52 53 54 55 56 |
# File 'lib/ruboty/todo/item.rb', line 52 def format(new_item: false) emoticon_state = new_item ? :new : status "[#{sprintf('%2d', id)}] :#{EMOTICONS[emoticon_state]}: #{title}" end |
#start ⇒ Object
24 25 26 |
# File 'lib/ruboty/todo/item.rb', line 24 def start self.status = :doing end |