def duration_in_words(places=2, min_unit=:minutes, recent_message='just now')
      parts = []
      secs = to_i
      UNIT_MAP.each_pair do |unit, count|
        val = (secs / count).floor
        secs = secs % count

        parts << [val, unit] if val > 0
        break if unit == min_unit
      end

      # Trim number of units
      parts = parts.take(places) if places

      parts = parts.map do |val, unit|
        pl_units = val == 1 ? unit.singularize : unit
        "#{val} #{pl_units}"
      end

      # Round up to the nearest unit
      if parts.size == 0
        parts << recent_message
      end

      parts.to_sentence
    end
def duration_in_words(places=2, min_unit=:minutes, recent_message='just now')
      parts = []
      secs = to_i
      UNIT_MAP.each_pair do |unit, count|
        val = (secs / count).floor
        secs = secs % count

        parts << [val, unit] if val > 0
        break if unit == min_unit
      end

      # Trim number of units
      parts = parts.take(places) if places

      parts = parts.map do |val, unit|
        pl_units = val == 1 ? unit.singularize : unit
        "#{val} #{pl_units}"
      end

      # Round up to the nearest unit
      if parts.size == 0
        parts << recent_message
      end

      parts.to_sentence
    end
Returns a string representation of the duration.

 @param How many places in time units to show.
 @param The minimum unit to show, anything below will be ignored.  Results
        will be rounded up the the nearest min_unit.