Reimplement #pretty_duration
Also reuse this improved implementation in the GitHub rate limit errors. Closes Homebrew/homebrew#44721. Signed-off-by: Baptiste Fontaine <batifon@yahoo.fr>
This commit is contained in:
parent
2392574a77
commit
f0a370ea12
@ -49,11 +49,11 @@ class UtilTests < Homebrew::TestCase
|
||||
end
|
||||
|
||||
def test_pretty_duration
|
||||
assert_equal "2 seconds", pretty_duration(1)
|
||||
assert_equal "1 second", pretty_duration(1)
|
||||
assert_equal "2 seconds", pretty_duration(2.5)
|
||||
assert_equal "42 seconds", pretty_duration(42)
|
||||
assert_equal "4.2 minutes", pretty_duration(252)
|
||||
assert_equal "4.2 minutes", pretty_duration(252.45)
|
||||
assert_equal "4 minutes", pretty_duration(240)
|
||||
assert_equal "4 minutes 12 seconds", pretty_duration(252.45)
|
||||
end
|
||||
|
||||
def test_plural
|
||||
|
||||
@ -138,9 +138,18 @@ def pretty_uninstalled(f)
|
||||
end
|
||||
|
||||
def pretty_duration(s)
|
||||
return "2 seconds" if s < 3 # avoids the plural problem ;)
|
||||
return "#{s.to_i} seconds" if s < 120
|
||||
"%.1f minutes" % (s/60.0)
|
||||
s = s.to_i
|
||||
res = ""
|
||||
|
||||
if s > 59
|
||||
m = s / 60
|
||||
s %= 60
|
||||
res = "#{m} minute#{plural m}"
|
||||
return res if s == 0
|
||||
res << " "
|
||||
end
|
||||
|
||||
res + "#{s} second#{plural s}"
|
||||
end
|
||||
|
||||
def plural(n, s = "s")
|
||||
@ -465,11 +474,7 @@ module GitHub
|
||||
end
|
||||
|
||||
def pretty_ratelimit_reset(reset)
|
||||
if (seconds = Time.at(reset) - Time.now) > 180
|
||||
"%d minutes %d seconds" % [seconds / 60, seconds % 60]
|
||||
else
|
||||
"#{seconds} seconds"
|
||||
end
|
||||
pretty_duration(Time.at(reset) - Time.now)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user