def to_s
          str = ''

          each do |part, time|
              # Skip any zero times.
              next if time.zero?

              # Concatenate the part of the time and the time itself.
              str << "#{time} #{time == 1 ? part[0..-2] : part}, "
          end

          str.chomp(', ').sub(/(.+), (.+)/, '\1 and \2')
      end
def to_s
          str = ''

          each do |part, time|
              # Skip any zero times.
              next if time.zero?

              # Concatenate the part of the time and the time itself.
              str << "#{time} #{time == 1 ? part[0..-2] : part}, "
          end

          str.chomp(', ').sub(/(.+), (.+)/, '\1 and \2')
      end
Friendly, human-readable string representation of the duration.

 *Example*

     d = Duration.new(:seconds => 140)
     => #<Duration: 2 minutes and 20 seconds>
     d.to_s
     => "2 minutes and 20 seconds"