提交 ab2d6abb 编写于 作者: L Levin Alexander 提交者: Yehuda Katz + Carl Lerche

make #inspect if zero length duration return '0 seconds' instead of empty...

make #inspect if zero length duration return '0 seconds' instead of empty string [#2838 state:resolved]
Signed-off-by: NYehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com>
上级 cf5b2b25
......@@ -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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册