class Taskpaper::Task

Public Class Methods

new(string) click to toggle source
# File lib/taskpaper/task.rb, line 3
def initialize(string)
  @description = string
end

Public Instance Methods

complete()
Alias for: complete?
complete!(polarity=nil,time=Time.now) click to toggle source
# File lib/taskpaper/task.rb, line 7
def complete!(polarity=nil,time=Time.now)
  if !polarity.nil?
    if polarity == false
      # Set to incomplete
      description.gsub!(/^x/, '-')
      remove_done_tags
    else
      # Set to complete with @done(TIME)
      description.gsub!(/^.\s/, 'x ')
      remove_done_tags
      description.strip!
      description << " @done(#{time})"
    end
    description.strip!
    description
  else
    # Polarity unspecified so.... REVERSE POLARITY!!!!
    complete!(!complete?)
  end
end
complete=(time) click to toggle source
# File lib/taskpaper/task.rb, line 28
def complete=(time)
  completed_at(time)
end
complete?() click to toggle source
# File lib/taskpaper/task.rb, line 37
def complete?
  begins_with_x? || tagged_done?
end
Also aliased as: complete
complete_at(time)
Alias for: completed_at
completed_at(time) click to toggle source
# File lib/taskpaper/task.rb, line 32
def completed_at(time)
  complete!(true, time)
end
Also aliased as: complete_at

Private Instance Methods

begins_with_x?() click to toggle source
# File lib/taskpaper/task.rb, line 48
def begins_with_x?
  !!description[/^x\s.*/]
end
done_regex() click to toggle source

def inspect

"<Taskpaper:Task#{object_id} @description=\"#{description}\" complete: #{complete?} tags: #{tags.inspect}"

end

# File lib/taskpaper/task.rb, line 62
def done_regex
  /@done\([[:alnum:]\s\-\_\:]*\)|@done/
end
remove_done_tags() click to toggle source
# File lib/taskpaper/task.rb, line 52
def remove_done_tags
  tags.each do |tag|
    description.gsub!(tag, "") if tag =~ done_regex
  end
end
tagged_done?() click to toggle source
# File lib/taskpaper/task.rb, line 44
def tagged_done?
  !!tags.detect{|tag| tag[done_regex] }
end