ConsoleSourceConsoleClock

module Clock

A simple clock utility for tracking and formatting time.

Definitions

def self.formatted_duration(duration)

Format a duration in seconds as a human readable string.

Signature

parameter duration Numeric

The duration in seconds.

returns String

The formatted duration.

Implementation

def self.formatted_duration(duration)
	if duration < 60.0
		return format("%.2fs", duration)
	end
	
	minutes = duration / 60.0
	
	if minutes < 60.0
		seconds = duration % 60
		return format("%dm%02ds", minutes, seconds)
	end
	
	hours = minutes / 60.0
	
	if hours < 24.0
		minutes = minutes % 60
		return format("%dh%02dm", hours, minutes)
	end
	
	days = hours / 24.0
	
	if days < 100.0
		hours = hours % 24
		return format("%dd%02dh", days, hours)
	end
	
	return format("%dd", days)
end

def self.now

Signature

returns Time

The current monotonic time.

Implementation

def self.now
	::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
end