Class: TimeTally::TimeTallier

Inherits:
Object
  • Object
show all
Defined in:
lib/time_tally/time_tallier.rb

Instance Method Summary collapse

Constructor Details

#initializeTimeTallier

Returns a new instance of TimeTallier.



3
4
5
# File 'lib/time_tally/time_tallier.rb', line 3

def initialize
  @tasks = {}
end

Instance Method Details

#add_entry(time_entry) ⇒ Object



7
8
9
10
# File 'lib/time_tally/time_tallier.rb', line 7

def add_entry(time_entry)
  @tasks[time_entry.task] ||= []
  @tasks[time_entry.task] << time_entry.duration
end


16
17
18
19
20
21
22
23
24
25
# File 'lib/time_tally/time_tallier.rb', line 16

def print_report
  total_time = Duration.new
  puts "-" * 68
  @tasks.keys.each do |k|
    puts "%-60s %s" % [k, total_time_for_task(k)]
    total_time += total_time_for_task(k)
  end
  puts "-" * 68
  puts "%-60s %s" % ["", total_time]
end

#total_time_for_task(task) ⇒ Object



12
13
14
# File 'lib/time_tally/time_tallier.rb', line 12

def total_time_for_task(task)
  @tasks[task].inject(Duration.new) { |a,b| a + b }
end