Class: Todo::Data::Item

Inherits:
Struct
  • Object
show all
Defined in:
lib/todo/data/item.rb

Constant Summary collapse

PROJECT =
/\s*\+([\w\-]+)/

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ Item

Returns a new instance of Item.



8
9
10
11
# File 'lib/todo/data/item.rb', line 8

def initialize(data)
  data[:tags] ||= {}
  super
end

Instance Attribute Details

#dataObject

Returns the value of attribute data

Returns:

  • (Object)

    the current value of data



5
6
7
# File 'lib/todo/data/item.rb', line 5

def data
  @data
end

Instance Method Details

#done?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/todo/data/item.rb', line 17

def done?
  status == :done
end

#done_dateObject



25
26
27
# File 'lib/todo/data/item.rb', line 25

def done_date
  tags[:done].to_s if tags[:done]
end

#due_dateObject



21
22
23
# File 'lib/todo/data/item.rb', line 21

def due_date
  tags[:due].to_s if tags[:due]
end

#matches?(data) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/todo/data/item.rb', line 37

def matches?(data)
  Matcher.new(self, data).matches?
end

#projectsObject



29
30
31
# File 'lib/todo/data/item.rb', line 29

def projects
  @projects ||= text.scan(PROJECT).flatten
end

#toggleObject



33
34
35
# File 'lib/todo/data/item.rb', line 33

def toggle
  done? ? pend : done
end