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

ruby-changes:11614

From: akr <ko1@a...>
Date: Wed, 22 Apr 2009 03:09:02 +0900 (JST)
Subject: [ruby-changes:11614] Ruby:r23251 (trunk): * lib/time.rb (Time#rfc2822): pad leading zeros for year.

akr	2009-04-22 03:08:47 +0900 (Wed, 22 Apr 2009)

  New Revision: 23251

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=23251

  Log:
    * lib/time.rb (Time#rfc2822): pad leading zeros for year.
      (Time#httpdate): ditto.
      (Time#xmlschema): ditto.

  Modified files:
    trunk/ChangeLog
    trunk/lib/time.rb
    trunk/test/test_time.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 23250)
+++ ChangeLog	(revision 23251)
@@ -1,3 +1,9 @@
+Wed Apr 22 03:06:56 2009  Tanaka Akira  <akr@f...>
+
+	* lib/time.rb (Time#rfc2822): pad leading zeros for year.
+	  (Time#httpdate): ditto.
+	  (Time#xmlschema): ditto.
+
 Wed Apr 22 02:10:48 2009  Tanaka Akira  <akr@f...>
 
 	* lib/time.rb (Time#xmlschema): use subsec instead of nsec.
Index: lib/time.rb
===================================================================
--- lib/time.rb	(revision 23250)
+++ lib/time.rb	(revision 23251)
@@ -445,7 +445,7 @@
   # If +self+ is a UTC time, -0000 is used as zone.
   #
   def rfc2822
-    sprintf('%s, %02d %s %d %02d:%02d:%02d ',
+    sprintf('%s, %02d %s %04d %02d:%02d:%02d ',
       RFC2822_DAY_NAME[wday],
       day, RFC2822_MONTH_NAME[mon-1], year,
       hour, min, sec) +
@@ -477,7 +477,7 @@
   #
   def httpdate
     t = dup.utc
-    sprintf('%s, %02d %s %d %02d:%02d:%02d GMT',
+    sprintf('%s, %02d %s %04d %02d:%02d:%02d GMT',
       RFC2822_DAY_NAME[t.wday],
       t.day, RFC2822_MONTH_NAME[t.mon-1], t.year,
       t.hour, t.min, t.sec)
@@ -498,7 +498,7 @@
   # Its default value is 0.
   #
   def xmlschema(fraction_digits=0)
-    sprintf('%d-%02d-%02dT%02d:%02d:%02d',
+    sprintf('%04d-%02d-%02dT%02d:%02d:%02d',
       year, mon, day, hour, min, sec) +
     if fraction_digits == 0
       ''
Index: test/test_time.rb
===================================================================
--- test/test_time.rb	(revision 23250)
+++ test/test_time.rb	(revision 23251)
@@ -45,6 +45,11 @@
     }
   end
 
+  def test_encode_rfc2822
+    t = Time.utc(1)
+    assert_equal("Mon, 01 Jan 0001 00:00:00 -0000", t.rfc2822)
+  end
+
   def test_rfc2616
     t = Time.utc(1994, 11, 6, 8, 49, 37)
     assert_equal(t, Time.httpdate("Sun, 06 Nov 1994 08:49:37 GMT"))
@@ -69,6 +74,11 @@
                  Time.httpdate('Sunday, 23-Dec-07 11:22:33 GMT'))
   end
 
+  def test_encode_httpdate
+    t = Time.utc(1)
+    assert_equal("Mon, 01 Jan 0001 00:00:00 GMT", t.httpdate)
+  end
+
   def test_rfc3339
     t = Time.utc(1985, 4, 12, 23, 20, 50, 520000)
     s = "1985-04-12T23:20:50.52Z"
@@ -165,6 +175,9 @@
     assert_equal("1970-01-01T09:00:00.0123456789012345678+09:00", t.xmlschema(19))
     assert_equal("1970-01-01T09:00:00.01234567890123456789+09:00", t.xmlschema(20))
 
+    t = Time.utc(1)
+    assert_equal("0001-01-01T00:00:00Z", t.xmlschema)
+
     begin
       Time.at(-1)
     rescue ArgumentError

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

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