Formatters helpers
@private
@private
@api private
Formats seconds into a human-readable string.
@param duration [Float, Fixnum] in seconds @return [String] human-readable time
@example
format_duration(1) #=> "1 minute 1 second" format_duration(135.14) #=> "2 minutes 15.14 seconds"
# File lib/rspec/core/formatters/helpers.rb, line 23 def self.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
@api private
Formats seconds to have 5 digits of precision with trailing zeros removed if the number is less than 1 or with 2 digits of precision if the number is greater than zero.
@param float [Float] @return [String] formatted float
@example
format_seconds(0.000006) #=> "0.00001" format_seconds(0.020000) #=> "0.02" format_seconds(1.00000000001) #=> "1"
The precision used is set in {Helpers::SUB_SECOND_PRECISION} and {Helpers::DEFAULT_PRECISION}.
@see strip_trailing_zeroes
# File lib/rspec/core/formatters/helpers.rb, line 57 def self.format_seconds(float, precision = nil) precision ||= (float < 1) ? SUB_SECOND_PRECISION : DEFAULT_PRECISION formatted = sprintf("%.#{precision}f", float) strip_trailing_zeroes(formatted) end
@api private
Pluralize a word based on a count.
@param count [Fixnum] number of objects @param string [String] word to be pluralized @return [String] pluralized word
# File lib/rspec/core/formatters/helpers.rb, line 82 def self.pluralize(count, string) "#{count} #{string}#{'s' unless count.to_f == 1}" end
Generated with the Darkfish Rdoc Generator 2.