Sha256: 65beb89a69e88f2ec01ab70ea053fb19debc4e8060289a91b6bf7178891cd5e7

Contents?: true

Size: 622 Bytes

Versions: 3

Compression:

Stored size: 622 Bytes

Contents

#!/usr/bin/env ruby
# frozen_string_literal: true

#
# Prints those tasks the were completed before they were due.
#
# Call it like
#
# $ task export rc.json.array=on rc.verbose=nothing | examples/finished-early
#

require 'taskwarrior'

r = TaskWarrior::Repository.new(ARGF.read)

selected = r.tasks.select do |t|
  t.status == :completed && t.due_at > t.end_at if t.due_at && t.end_at
end

puts "#{selected.size} tasks completed before they were due:"

selected.group_by { |t| (t.due_at - t.end_at).truncate }.sort.each do |g, tasks|
  puts "#{g} days early:"
  tasks.each do |t|
    puts "  #{t.description}"
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
taskwarrior-1.0.2 examples/finished-early
taskwarrior-1.0.1 examples/finished-early
taskwarrior-1.0.0 examples/finished-early