Class: Fortschritt::Printer

Inherits:
Object show all
Defined in:
lib/fortschritt/printer.rb

Instance Method Summary collapse

Instance Method Details

#eol(meter) ⇒ Object



35
36
37
# File 'lib/fortschritt/printer.rb', line 35

def eol(meter)
  meter.completed? ? "\n" : ''
end

#eta(meter) ⇒ Object



21
22
23
24
# File 'lib/fortschritt/printer.rb', line 21

def eta(meter)
  result = Time.now + meter.remaining_seconds
  "ETA #{result.strftime "%Y-%m-%d %H:%M:%S"}"
end

#finished_after(meter) ⇒ Object



26
27
28
29
# File 'lib/fortschritt/printer.rb', line 26

def finished_after(meter)
  meter.completed? or return
  "took #{format_seconds(meter.total_elapsed_seconds)}"
end

#output(meter) ⇒ Object



7
8
9
10
11
12
13
14
15
# File 'lib/fortschritt/printer.rb', line 7

def output(meter)
  result = [
    slice(meter),
    remaining(meter),
    eta(meter),
    finished_after(meter),
  ].compact.join ''
  "\r#{result}#{eol(meter)}"
end


3
4
5
# File 'lib/fortschritt/printer.rb', line 3

def print(meter, stream = STDOUT)
  stream.print output(meter) if stream.tty?
end

#remaining(meter) ⇒ Object



31
32
33
# File 'lib/fortschritt/printer.rb', line 31

def remaining(meter)
  format_seconds meter.remaining_seconds
end

#slice(meter) ⇒ Object



17
18
19
# File 'lib/fortschritt/printer.rb', line 17

def slice(meter)
  "#{meter.done}/#{meter.total}"
end