make #inspect if zero length duration return '0 seconds' instead of empty string [#2838 state:resolved]
Signed-off-by: Yehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com>
This commit is contained in:
parent
cf5b2b250f
commit
ab2d6abb55
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user