class Haora::Task

Attributes

project[R]
start[R]
stop[R]
text[R]

Public Class Methods

new(params = {}) click to toggle source
# File lib/haora/task.rb, line 6
def initialize(params = {})
  @start = params[:start] ? Timestamp.new(literal: params[:start]) : Timestamp.now
  @stop = params[:stop] ? Timestamp.new(literal: params[:stop]) : nil
  @project = Project.by(name: params[:project])
  @text = params[:text] || ''
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/haora/task.rb, line 38
def <=>(other)
  @start.to_minutes <=> other.start.to_minutes
end
duration() click to toggle source
# File lib/haora/task.rb, line 29
def duration
  (@stop.nil? ? Timestamp.now : @stop) - @start
end
gap(params) click to toggle source
# File lib/haora/task.rb, line 33
def gap(params)
  next_task = params[:to_next]
  next_task.start - @stop
end
open?() click to toggle source
# File lib/haora/task.rb, line 25
def open?
  @stop.nil?
end
project=(project) click to toggle source
# File lib/haora/task.rb, line 13
def project=(project)
  if project.is_a? String
    @project = Project.by(name: project)
  else
    @project = project
  end
end
stop_at(timestamp) click to toggle source
# File lib/haora/task.rb, line 42
def stop_at(timestamp)
  if timestamp.is_a? String
    @stop = Timestamp.new(literal: timestamp)
  else
    @stop = timestamp
  end
end
text=(text) click to toggle source
# File lib/haora/task.rb, line 21
def text=(text)
  @text = text ||''
end
to_s() click to toggle source
# File lib/haora/task.rb, line 50
def to_s
  '%s - %s : %s : %s' % [@start, @stop, @project.name, @text]
end