class Ke::IndeterminateTask

Attributes

complete_time[R]
tick_count[R]

Public Class Methods

new(opts = {}) click to toggle source
# File lib/ke/indeterminate_task.rb, line 5
def initialize(opts = {})
  @tick_count = 0
  @duration_per_tick = 0
  @duration_per_tick_history = CappedSample.new(100)
  @mutex = Mutex.new
  @last_tick_time = nil
end

Public Instance Methods

complete() click to toggle source
# File lib/ke/indeterminate_task.rb, line 43
def complete
  @complete_time = Time.now
end
duration_per_tick() click to toggle source
# File lib/ke/indeterminate_task.rb, line 29
def duration_per_tick
  @duration_per_tick_history.mean_iqr
end
elapsed_duration() click to toggle source
# File lib/ke/indeterminate_task.rb, line 17
def elapsed_duration
  Time.now - @start_time
end
start() click to toggle source
# File lib/ke/indeterminate_task.rb, line 25
def start
  @start_time = Time.now
end
start_time() click to toggle source
# File lib/ke/indeterminate_task.rb, line 13
def start_time
  @start_time
end
tick() click to toggle source
# File lib/ke/indeterminate_task.rb, line 33
def tick
  @mutex.synchronize do
    this_tick_time = Time.now
    duration_this_tick = this_tick_time - (@last_tick_time || start_time)
    @duration_per_tick_history << duration_this_tick
    @last_tick_time = this_tick_time
    @tick_count += 1
  end
end
total_duration() click to toggle source
# File lib/ke/indeterminate_task.rb, line 21
def total_duration
  @complete_time - @start_time
end