class Ptimelog::Command::Show

show entries of one day or all of them

Public Class Methods

new(*args) click to toggle source
Calls superclass method Ptimelog::Command::Base::new
# File lib/ptimelog/command/show.rb, line 7
def initialize(*args)
  @durations = Hash.new(0)

  super
end

Public Instance Methods

duration(date) click to toggle source
# File lib/ptimelog/command/show.rb, line 45
def duration(date)
  Time.at(@durations[date]).utc.strftime('%H:%M')
end
entries=(entries) click to toggle source
# File lib/ptimelog/command/show.rb, line 34
def entries=(entries)
  entries.each do |date, list|
    @entries[date] = []

    list.each do |entry|
      @durations[date] += entry.duration
      @entries[date] << entry.to_s
    end
  end
end
needs_entries?() click to toggle source
# File lib/ptimelog/command/show.rb, line 13
def needs_entries?
  true
end
run() click to toggle source
# File lib/ptimelog/command/show.rb, line 17
def run
  @entries.each do |date, list|
    puts date,
         '----------'

    next if list.empty?

    list.each do |entry|
      puts entry
    end
    puts '----------',
         "Total work done: #{duration(date)} hours",
         '----------------------------',
         nil
  end
end