class Timeit::Timer

Constants

IllegalStateError

Attributes

count[R]
start_time[R]

Public Class Methods

new() click to toggle source
# File lib/timeit.rb, line 12
def initialize
  @start_time = nil
  @count = 0
  @rate = 0

  @split_time = nil
  @split_count = 0
  @split_rate = 0
end

Public Instance Methods

duration() click to toggle source
# File lib/timeit.rb, line 30
def duration
  duration = Time.now - @start_time
  @rate = @count / duration
  duration
end
rate() click to toggle source
# File lib/timeit.rb, line 63
def rate
  @rate
end
reset_split!() click to toggle source
# File lib/timeit.rb, line 54
def reset_split!
  @split_time = @start_time
end
split() click to toggle source
# File lib/timeit.rb, line 44
def split
  split = Time.now - @split_time
  @split_time = Time.now

  @split_rate = @split_count / split
  @split_count = 0

  split
end
split_rate() click to toggle source
# File lib/timeit.rb, line 67
def split_rate
  @split_rate
end
start() click to toggle source
# File lib/timeit.rb, line 22
def start
  @start_time = @split_time = Time.now
end
stop() click to toggle source
# File lib/timeit.rb, line 26
def stop
  @stop_time = Time.now
end
tick!(count = 1) click to toggle source
# File lib/timeit.rb, line 58
def tick!(count = 1)
  @count += count
  @split_count += count
end
total_duration() click to toggle source
# File lib/timeit.rb, line 36
def total_duration
  if @stop_time
    @stop_time - @start_time
  else
    raise(IllegalStateError, "Timer must be stopped for total duration")
  end
end