Sha256: 81a2ee852182ca2b2c3b267e35a3031e45424f40a23df9157b8a2eafb1cd962f

Contents?: true

Size: 713 Bytes

Versions: 3

Compression:

Stored size: 713 Bytes

Contents

# frozen_string_literal: true
#
# This file is part of the "timers" project and released under the MIT license.
#
# Copyright, 2018, by Samuel Williams. All rights reserved.
#

module Timers
	# A collection of timers which may fire at different times
	class Interval
		# Get the current elapsed monotonic time.
		def initialize
			@total = 0.0
			@current = nil
		end
		
		def start
			return if @current
			
			@current = now
		end
		
		def stop
			return unless @current
			
			@total += duration
			
			@current = nil
		end
		
		def to_f
			@total + duration
		end
		
		protected def duration
			now - @current
		end
		
		protected def now
			::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
		end
	end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
timers-4.3.0 lib/timers/interval.rb
timers-4.2.1 lib/timers/interval.rb
timers-4.2.0 lib/timers/interval.rb