[前][次][番号順一覧][スレッド一覧]

ruby-changes:5349

From: akr <ko1@a...>
Date: Fri, 6 Jun 2008 00:08:45 +0900 (JST)
Subject: [ruby-changes:5349] Ruby:r16850 (trunk, ruby_1_8): * lib/time.rb (Time.xmlschema): don't use float. fix

akr	2008-06-06 00:08:12 +0900 (Fri, 06 Jun 2008)

  New Revision: 16850

  Modified files:
    branches/ruby_1_8/ChangeLog
    branches/ruby_1_8/lib/time.rb
    trunk/ChangeLog
    trunk/lib/time.rb

  Log:
    * lib/time.rb (Time.xmlschema): don't use float.  fix
      http://rubyforge.org/tracker/index.php?func=detail&group_id=426&atid=1698&aid=20504


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/time.rb?r1=16850&r2=16849&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=16850&r2=16849&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=16850&r2=16849&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/lib/time.rb?r1=16850&r2=16849&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 16849)
+++ ChangeLog	(revision 16850)
@@ -1,3 +1,8 @@
+Fri Jun  6 00:05:33 2008  Tanaka Akira  <akr@f...>
+
+	* lib/time.rb (Time.xmlschema): don't use float.  fix
+	  http://rubyforge.org/tracker/index.php?func=detail&group_id=426&atid=1698&aid=20504
+
 Thu Jun  5 23:56:18 2008  Yusuke Endoh  <mame@t...>
 
 	* test/ruby/test_gc.rb: add tests to achieve over 90% test coverage of
Index: lib/time.rb
===================================================================
--- lib/time.rb	(revision 16849)
+++ lib/time.rb	(revision 16850)
@@ -384,7 +384,9 @@
         min = $5.to_i
         sec = $6.to_i
         usec = 0
-        usec = $7.to_f * 1000000 if $7
+        if $7
+          usec = Rational(($7[1..-1] + '000000000')[0,9].to_i, 1000)
+        end
         if $8
           zone = $8
           year, mon, day, hour, min, sec =
@@ -645,6 +647,8 @@
         t = Time.utc(1960, 12, 31, 23, 0, 0, 123456)
         assert_equal("1960-12-31T23:00:00.123456Z", t.xmlschema(6))
       end
+
+      assert_equal(249, Time.xmlschema("2008-06-05T23:49:23.000249+09:00").usec)
     end
 
     def test_completion
Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog	(revision 16849)
+++ ruby_1_8/ChangeLog	(revision 16850)
@@ -1,3 +1,8 @@
+Fri Jun  6 00:05:33 2008  Tanaka Akira  <akr@f...>
+
+	* lib/time.rb (Time.xmlschema): don't use float.  fix
+	  http://rubyforge.org/tracker/index.php?func=detail&group_id=426&atid=1698&aid=20504
+
 Thu Jun  5 20:30:46 2008  Akinori MUSHA  <knu@i...>
 
 	* ext/openssl/ossl_ssl_session.c (ossl_ssl_session_initialize):
Index: ruby_1_8/lib/time.rb
===================================================================
--- ruby_1_8/lib/time.rb	(revision 16849)
+++ ruby_1_8/lib/time.rb	(revision 16850)
@@ -363,7 +363,7 @@
         min = $5.to_i
         sec = $6.to_i
         usec = 0
-        usec = $7.to_f * 1000000 if $7
+        usec = ($7[1..-1] + '000000')[0,6].to_i if $7
         if $8
           zone = $8
           year, mon, day, hour, min, sec =
@@ -621,6 +621,8 @@
         t = Time.utc(1960, 12, 31, 23, 0, 0, 123456)
         assert_equal("1960-12-31T23:00:00.123456Z", t.xmlschema(6))
       end
+
+      assert_equal(249, Time.xmlschema("2008-06-05T23:49:23.000249+09:00").usec)
     end
 
     def test_completion

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]