Class: WhatHaveIDone::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/what_have_i_done/runner.rb

Instance Method Summary collapse

Constructor Details

#initializeRunner

Returns a new instance of Runner.



5
6
7
# File 'lib/what_have_i_done/runner.rb', line 5

def initialize()
  @client = TogglV8::API.new
end

Instance Method Details

#runObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/what_have_i_done/runner.rb', line 9

def run
  entries = client.get_time_entries(start_date: Date.today.to_datetime)
  entries_by_project = entries.group_by { |entry| entry["pid"] }
  projects = entries_by_project.keys.map { |pid| client.get_project(pid) }

  projects.each do |project|
    project_entries = entries_by_project[project["id"]]
    time_spent = duration_for_entries(project_entries)
    entries_str = project_entries.map do |entry|
      entry["description"]
    end.uniq.join('; ')

    subtitle project['name']
    subtitle "#{seconds_as_time(time_spent)} (#{seconds_as_hours(time_spent)})"
    text "#{entries_str}\n\n"
  end

  total_time = duration_for_entries(entries)

  title "Total time today:"
  title "#{seconds_as_time(total_time)} (#{seconds_as_hours(total_time)})"
end