Project

General

Profile

Actions

Bug #11509

closed

Incorrect fraction_digits calculation in lib/rss/rss.rb:41 Time#w3cdtf

Added by Nakilon (Victor Maslov) over 6 years ago. Updated about 6 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
2.0.0p451
[ruby-core:<unknown>]

Description

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

Actions #1

Updated by Nakilon (Victor Maslov) over 6 years ago

Sorry for broken markdown -- here I fixed it:

Current code is:

  def w3cdtf
    if usec.zero?
      fraction_digits = 0
    else
      fraction_digits = Math.log10(usec.to_s.sub(/0*$/, '').to_i).floor + 1
    end
  end

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:

  def w3cdtf
    fraction_digits = (usec + 1000000).to_s.sub(/0*$/, '').length - 1
    xmlschema(fraction_digits)
  end

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

Actions #2

Updated by nobu (Nobuyoshi Nakada) over 6 years ago

  • Status changed from Open to Closed

Applied in changeset r51766.


rss.rb: fix usec width

  • lib/rss/rss.rb (Time#w3cdtf): fix zero-trimmed width of fraction digits. [ruby-core:70667] [Bug #11509]
Actions #3

Updated by nobu (Nobuyoshi Nakada) over 6 years ago

  • Description updated (diff)
Actions #4

Updated by nobu (Nobuyoshi Nakada) over 6 years ago

  • Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN to 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: REQUIRED
Actions #5

Updated by usa (Usaku NAKAMURA) about 6 years ago

  • Backport changed from 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: REQUIRED to 2.0.0: REQUIRED, 2.1: DONE, 2.2: REQUIRED

ruby_2_1 r51977 merged revision(s) 51766,51767.

Actions #6

Updated by nagachika (Tomoyuki Chikanaga) about 6 years ago

  • Backport changed from 2.0.0: REQUIRED, 2.1: DONE, 2.2: REQUIRED to 2.0.0: REQUIRED, 2.1: DONE, 2.2: DONE

Backported into ruby_2_2 branch at r51987.

Actions

Also available in: Atom PDF