From: nakilon@... Date: 2015-09-05T01:23:08+00:00 Subject: [ruby-core:70667] [Ruby trunk - Bug #11509] [Open] Incorrect fraction_digits calculation in lib/rss/rss.rb:41 Time#w3cdtf Issue #11509 has been reported by Victor Maslov. ---------------------------------------- Bug #11509: Incorrect fraction_digits calculation in lib/rss/rss.rb:41 Time#w3cdtf https://bugs.ruby-lang.org/issues/11509 * Author: Victor Maslov * Status: Open * Priority: Normal * Assignee: * ruby -v: 2.0.0p451 * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- Current code is: ~~~ fraction_digits = Math.log10(usec.to_s.sub(/0*$/, '').to_i).floor + 1 ~~~ This makes time to lose as many digits, as there are zeros right after dot: ~~~ < 2014-03-04T07:37:30.04253+04:00 > 2014-03-04T07:37:30.0425+04:00 ~~~ My solution that solves the issue is: ~~~ fraction_digits = (usec + 1000000).to_s.length - 1 ~~~ My Ruby is 2.0.0, but looks like noone touched RSS module for a year, so the bug is still here: https://bugs.ruby-lang.org/projects/ruby-trunk/repository/entry/lib/rss/rss.rb#L56 -- https://bugs.ruby-lang.org/