Class: TimeTally::DoSomething

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

Instance Method Summary collapse

Constructor Details

#initialize(options, out: stdout, err: stderr) ⇒ DoSomething

Returns a new instance of DoSomething.



5
6
7
8
9
# File 'lib/time_tally/do_something.rb', line 5

def initialize(options, out: stdout, err: stderr)
  @options = options
  @out = out
  @err = err
end

Instance Method Details

#showObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/time_tally/do_something.rb', line 11

def show
  lines = ARGF.read.split("\n")

  time_indices = lines.each_with_index.to_a.select { |s| s[0] =~ /^\d+:\d{2}:\d{2}$/ }
  lines_per_entry = time_indices[1][1] - time_indices[0][1]

  entries = []
  line_type_counter = 0
  lines.each do |line|
    next if line_type_counter == 0 && line == "\t"
    if line_type_counter == 0
      entries << []
    end

    entries.last << line
    line_type_counter = (line_type_counter + 1) % lines_per_entry
  end

  tallier = TimeTallier.new
  entries.each { |e| tallier.add_entry(TimeEntry.from_lines(e)) }
  tallier.print_report
end