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