class Nin::Item

Attributes

archived[RW]
completed[RW]
date[RW]
desc[RW]
id[RW]
tags[RW]
uid[RW]

Public Class Methods

new(id, desc, date = Date.today, tags = [], uid = nil, completed = false, archived = false, formatter = Presenter::ItemPresenter) click to toggle source
# File lib/nin/item.rb, line 5
def initialize(id,
               desc,
               date = Date.today,
               tags = [],
               uid = nil,
               completed = false,
               archived = false,
               formatter = Presenter::ItemPresenter)

  @id        = id
  @desc      = desc
  @date      = Date.parse_or_return(date) || Date.today
  @tags      = tags.ensure_array
  @uid       = uid
  @completed = completed
  @archived  = archived
  @formatter = formatter.new(self)
end

Public Instance Methods

archived?() click to toggle source
# File lib/nin/item.rb, line 43
def archived?
  @archived
end
completed?() click to toggle source
# File lib/nin/item.rb, line 39
def completed?
  @completed
end
edit(desc, date = nil, tags = [], completed = nil) click to toggle source
# File lib/nin/item.rb, line 24
def edit(desc, date = nil, tags = [], completed = nil)
  self.desc = desc
  self.date = Date.parse_or_return(date) unless date.nil?
  self.tags.concat(tags.ensure_array).uniq!
  self.completed = completed.nil? ? self.completed : completed
end
past?() click to toggle source
# File lib/nin/item.rb, line 47
def past?
  @date < Date.today
end
to_h() click to toggle source
# File lib/nin/item.rb, line 59
def to_h
  {
    'id' => id,
    'desc' => desc,
    'tags' => tags,
    'completed' => completed,
    'archived' => archived,
    'uid' => uid
  }
end
to_s() click to toggle source
# File lib/nin/item.rb, line 55
def to_s
  @formatter.call
end
today?() click to toggle source
# File lib/nin/item.rb, line 51
def today?
  @date == Date.today
end
toggle_archived!() click to toggle source
# File lib/nin/item.rb, line 35
def toggle_archived!
  @archived = !@archived
end
toggle_completed!() click to toggle source
# File lib/nin/item.rb, line 31
def toggle_completed!
  @completed = !@completed
end