提交 c2b79c01 编写于 作者: S shtirlic

Fix xmlschema output with fraction_digits >0

Current implementation produce incorrect output when Time#usec returns
integer < 100000, because to_s doesn't add leading zeros.
上级 539d684b
......@@ -109,7 +109,7 @@ def inspect
def xmlschema(fraction_digits = 0)
fraction = if fraction_digits > 0
".%i" % time.usec.to_s[0, fraction_digits]
(".%06i" % time.usec)[0, fraction_digits + 1]
end
"#{time.strftime("%Y-%m-%dT%H:%M:%S")}#{fraction}#{formatted_offset(true, 'Z')}"
......
......@@ -111,6 +111,13 @@ def test_xmlschema_with_fractional_seconds
assert_equal "1999-12-31T19:00:00.123456-05:00", @twz.xmlschema(12)
end
def test_xmlschema_with_fractional_seconds_lower_than_hundred_thousand
@twz += 0.001234 # advance the time by a fraction
assert_equal "1999-12-31T19:00:00.001-05:00", @twz.xmlschema(3)
assert_equal "1999-12-31T19:00:00.001234-05:00", @twz.xmlschema(6)
assert_equal "1999-12-31T19:00:00.001234-05:00", @twz.xmlschema(12)
end
def test_to_yaml
assert_match(/^--- 2000-01-01 00:00:00(\.0+)?\s*Z\n/, @twz.to_yaml)
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册