Method: Tins::Duration#format

Defined in:
lib/tins/duration.rb

#format(template = '%d+%h:%m:%s.%f', precision: nil) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/tins/duration.rb', line 47

def format(template = '%d+%h:%m:%s.%f', precision: nil)
  result = template.gsub(/%[dhms]/,
    '%d' => @days,
    '%h' => '%02u' % @hours,
    '%m' => '%02u' % @minutes,
    '%s' => '%02u' % @seconds,
  )
  if result.include?('%f')
    if precision
      fractional_seconds = "%.#{precision}f" % @fractional_seconds
    else
      fractional_seconds = '%f' % @fractional_seconds
    end
    result.gsub!('%f', fractional_seconds[2..-1])
  end
  result
end