[ruby-core:70668] [Ruby trunk - Bug #11509] Incorrect fraction_digits calculation in lib/rss/rss.rb:41 Time#w3cdtf

From: nakilon@...
Date: 2015-09-05 01:25:48 UTC
List: ruby-core #70668
Issue #11509 has been updated by Victor Maslov.


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:

~~~
<       <dc:date>2014-03-04T07:37:30.04253+04:00</dc:date>
>       <dc:date>2014-03-04T07:37:30.0425+04:00</dc:date>
~~~

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

----------------------------------------
Bug #11509: Incorrect fraction_digits calculation in lib/rss/rss.rb:41 Time#w3cdtf
https://bugs.ruby-lang.org/issues/11509#change-54061

* 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:
~~~
<       <dc:date>2014-03-04T07:37:30.04253+04:00</dc:date>
>       <dc:date>2014-03-04T07:37:30.0425+04:00</dc:date>
~~~
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/

In This Thread

Prev Next