class Todo::Data::Item

Constants

PROJECT

Public Class Methods

new(data) click to toggle source
Calls superclass method
# File lib/todo/data/item.rb, line 8
def initialize(data)
  data[:tags] ||= {}
  super
end

Public Instance Methods

done?() click to toggle source
# File lib/todo/data/item.rb, line 21
def done?
  status == :done
end
done_date() click to toggle source
# File lib/todo/data/item.rb, line 29
def done_date
  tags[:done].to_s if tags[:done]
end
due_date() click to toggle source
# File lib/todo/data/item.rb, line 25
def due_date
  tags[:due].to_s if tags[:due]
end
item?() click to toggle source
# File lib/todo/data/item.rb, line 17
def item?
  !!status
end
matches?(data) click to toggle source
# File lib/todo/data/item.rb, line 41
def matches?(data)
  Matcher.new(self, data).matches?
end
projects() click to toggle source
# File lib/todo/data/item.rb, line 33
def projects
  @projects ||= text.scan(PROJECT).flatten
end
toggle() click to toggle source
# File lib/todo/data/item.rb, line 37
def toggle
  done? ? pend : done
end

Private Instance Methods

done() click to toggle source
# File lib/todo/data/item.rb, line 47
def done
  data[:status] = :done
  data[:tags][:done] = today
end
pend() click to toggle source
# File lib/todo/data/item.rb, line 52
def pend
  data[:status] = :pend
  data[:tags].delete(:done)
end
today() click to toggle source
# File lib/todo/data/item.rb, line 57
def today
  Time.now.strftime('%Y-%m-%d')
end