Class: ProgressBar::ETA

Inherits:
Meter
  • Object
show all
Includes:
TimeFormatter
Defined in:
lib/progress_bar/meters/eta.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(start, count, max) ⇒ ETA

Returns a new instance of ETA.



8
9
10
# File 'lib/progress_bar/meters/eta.rb', line 8

def initialize start, count, max
  @start, @count, @max = start, count, max
end

Instance Attribute Details

#countObject (readonly)

Returns the value of attribute count.



6
7
8
# File 'lib/progress_bar/meters/eta.rb', line 6

def count
  @count
end

#maxObject (readonly)

Returns the value of attribute max.



6
7
8
# File 'lib/progress_bar/meters/eta.rb', line 6

def max
  @max
end

#startObject (readonly)

Returns the value of attribute start.



6
7
8
# File 'lib/progress_bar/meters/eta.rb', line 6

def start
  @start
end

Instance Method Details

#averageObject



16
17
18
19
20
21
22
# File 'lib/progress_bar/meters/eta.rb', line 16

def average
  if count == 0
    0
  else
    elapsed / count
  end
end

#elapsedObject



12
13
14
# File 'lib/progress_bar/meters/eta.rb', line 12

def elapsed
  Time.now - start
end

#remainingObject



24
25
26
# File 'lib/progress_bar/meters/eta.rb', line 24

def remaining
  (max - count) * average
end

#to_sObject



28
29
30
# File 'lib/progress_bar/meters/eta.rb', line 28

def to_s
  "[ETA: #{format_interval(remaining)}]"
end

#widthObject



32
33
34
# File 'lib/progress_bar/meters/eta.rb', line 32

def width
  format_interval(elapsed).length + 7
end