Module: RSpec::Core::Formatters::Helpers
- Defined in:
- lib/rspec/core/formatters/helpers.rb
Overview
Formatters helpers.
Constant Summary
Class Method Summary (collapse)
- 
  
      + (String) format_duration(duration) 
  
  private
    Formats seconds into a human-readable string. 
- 
  
      + (String) format_seconds(float, precision = nil) 
  
  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. 
- 
  
      + (void) organize_ids(ids) 
  
  private
    Given a list of example ids, organizes them into a compact, ordered list. 
- 
  
      + (String) pluralize(count, string) 
  
  private
    Pluralize a word based on a count. 
Class Method Details
+ (String) format_duration(duration)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Formats seconds into a human-readable string.
| 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | # File 'lib/rspec/core/formatters/helpers.rb', line 24 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 | 
+ (String) format_seconds(float, precision = nil)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
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.
The precision used is set in SUB_SECOND_PRECISION and DEFAULT_PRECISION.
| 60 61 62 63 64 | # File 'lib/rspec/core/formatters/helpers.rb', line 60 def self.format_seconds(float, precision=nil) precision ||= (float < 1) ? SUB_SECOND_PRECISION : DEFAULT_PRECISION formatted = "%.#{precision}f" % float strip_trailing_zeroes(formatted) end | 
+ (void) organize_ids(ids)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Given a list of example ids, organizes them into a compact, ordered list.
| 93 94 95 96 97 98 99 100 101 102 103 104 105 | # File 'lib/rspec/core/formatters/helpers.rb', line 93 def self.organize_ids(ids) grouped = ids.inject(Hash.new { |h, k| h[k] = [] }) do |hash, id| file, id = id.split(Configuration::ON_SQUARE_BRACKETS) hash[file] << id hash end grouped.sort_by(&:first).map do |file, grouped_ids| grouped_ids = grouped_ids.sort_by { |id| id.split(':').map(&:to_i) } id = Metadata.id_from(:rerun_file_path => file, :scoped_id => grouped_ids.join(',')) ShellEscape.conditionally_quote(id) end end | 
+ (String) pluralize(count, string)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Pluralize a word based on a count.
| 87 88 89 | # File 'lib/rspec/core/formatters/helpers.rb', line 87 def self.pluralize(count, string) "#{count} #{string}#{'s' unless count.to_f == 1}" end |