diff --git a/ChangeLog b/ChangeLog index b268376359..a4f214f34a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Sep 30 03:44:36 2015 Nobuyoshi Nakada + + * lib/rss/rss.rb (Time#w3cdtf): fix zero-trimmed width of fraction + digits. [ruby-core:70667] [Bug #11509] + Wed Sep 30 03:34:25 2015 Nobuyoshi Nakada * re.c (rb_memsearch_wchar, rb_memsearch_qchar): test matching diff --git a/lib/rss/rss.rb b/lib/rss/rss.rb index 4f6732b4d2..dbea3b5344 100644 --- a/lib/rss/rss.rb +++ b/lib/rss/rss.rb @@ -53,7 +53,7 @@ class Time if usec.zero? fraction_digits = 0 else - fraction_digits = Math.log10(usec.to_s.sub(/0*$/, '').to_i).floor + 1 + fraction_digits = strftime('%6N').index(/0*\z/) end xmlschema(fraction_digits) end diff --git a/test/rss/test_to_s.rb b/test/rss/test_to_s.rb index 4ef83ce18b..d97cf9d4b0 100644 --- a/test/rss/test_to_s.rb +++ b/test/rss/test_to_s.rb @@ -102,6 +102,12 @@ module RSS assert_textinput20(@textinput_info, rss.textinput) end + def test_time_w3cdtf + assert_equal("2015-09-05T01:25:48.0001Z", + Time.utc(2015, 9, 5, 1, 25, 48, 100).w3cdtf, + '[ruby-core:70667] [Bug #11509]') + end + private def setup_xml_declaration_info @version = "1.0" diff --git a/version.h b/version.h index a5e0c86ca6..5714dd90bf 100644 --- a/version.h +++ b/version.h @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.2.4" #define RUBY_RELEASE_DATE "2015-09-30" -#define RUBY_PATCHLEVEL 177 +#define RUBY_PATCHLEVEL 178 #define RUBY_RELEASE_YEAR 2015 #define RUBY_RELEASE_MONTH 9