module RSpec::Core::Formatters::Helpers
def format_duration(duration)
-
(String)
- human-readable time
Parameters:
-
duration
(Float, Fixnum
) -- in seconds
Other tags:
- Api: - private
def format_duration(duration) precision = case when duration < 1; SUB_SECOND_PRECISION when duration < 120; DEFAULT_PRECISION when duration < 300; 1 else 0 end if duration > 60 minutes = (duration.to_i / 60).to_i seconds = duration - minutes * 60 "#{pluralize(minutes, 'minute')} #{pluralize(format_seconds(seconds, precision), 'second')}" else pluralize(format_seconds(duration, precision), 'second') end end
def format_seconds(float, precision = nil)
- See: #strip_trailing_zeroes -
Returns:
-
(String)
- formatted float
Parameters:
-
float
(Float
) --
Other tags:
- Api: - private
def format_seconds(float, precision = nil) precision ||= (float < 1) ? SUB_SECOND_PRECISION : DEFAULT_PRECISION formatted = sprintf("%.#{precision}f", float) strip_trailing_zeroes(formatted) end
def pluralize(count, string)
-
(String)
- pluralized word
Parameters:
-
string
(String
) -- word to be pluralized -
count
(Fixnum
) -- number of objects
Other tags:
- Api: - private
def pluralize(count, string) "#{count} #{string}#{'s' unless count.to_f == 1}" end
def strip_trailing_zeroes(string)
-
(String)
- string with trailing zeros removed
Parameters:
-
string
(String
) -- string with trailing zeros
Other tags:
- Api: - private
def strip_trailing_zeroes(string) stripped = string.sub(/[^1-9]+$/, '') stripped.empty? ? "0" : stripped end