Navigation Menu

Skip to content

Commit

Permalink
make #inspect if zero length duration return '0 seconds' instead of e…
Browse files Browse the repository at this point in the history
…mpty string [rails#2838 state:resolved]

Signed-off-by: Yehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com>
  • Loading branch information
levinalex authored and Yehuda Katz + Carl Lerche committed Jul 2, 2009
1 parent cf5b2b2 commit ab2d6ab
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 2 deletions.
6 changes: 4 additions & 2 deletions activesupport/lib/active_support/duration.rb
Expand Up @@ -68,10 +68,12 @@ def ago(time = ::Time.current)

def inspect #:nodoc:
consolidated = parts.inject(::Hash.new(0)) { |h,part| h[part.first] += part.last; h }
[:years, :months, :days, :minutes, :seconds].map do |length|
parts = [:years, :months, :days, :minutes, :seconds].map do |length|
n = consolidated[length]
"#{n} #{n == 1 ? length.to_s.singularize : length.to_s}" if n.nonzero?
end.compact.to_sentence(:locale => :en)
end.compact
parts = ["0 seconds"] if parts.empty?
parts.to_sentence(:locale => :en)
end

protected
Expand Down
1 change: 1 addition & 0 deletions activesupport/test/core_ext/duration_test.rb
Expand Up @@ -3,6 +3,7 @@

class DurationTest < ActiveSupport::TestCase
def test_inspect
assert_equal '0 seconds', 0.seconds.inspect
assert_equal '1 month', 1.month.inspect
assert_equal '1 month and 1 day', (1.month + 1.day).inspect
assert_equal '6 months and -2 days', (6.months - 2.days).inspect
Expand Down

0 comments on commit ab2d6ab

Please sign in to comment.