[#30549] [ANN] Ruby 1.8.6 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 をリリースしました。

14 messages 2007/03/12

[#30553] help: lib/shell for ruby 1.9 — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

13 messages 2007/03/13
[#30585] Re: help: lib/shell for ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/03/15

まつもと ゆきひろです

[#30587] Re: help: lib/shell for ruby 1.9 — keiju@... (石塚圭樹) 2007/03/15

けいじゅ@いしつかです.

[#30588] Re: help: lib/shell for ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/03/15

まつもと ゆきひろです

[ruby-dev:30499] Re: Time#to_s format

From: "Akinori MUSHA" <knu@...>
Date: 2007-03-06 06:38:38 UTC
List: ruby-dev #30499
At Mon, 5 Mar 2007 23:27:33 +0900,
matz wrote:
> In message "Re: [ruby-dev:30493] Re: Time#to_s format"
>     on Mon, 5 Mar 2007 22:15:13 +0900, "Akinori MUSHA" <knu@iDaemons.org> writes:
>
> | ところで、 1.8.6 の Time#to_s を RFC 2822 形式にするというのは
> |最終決定でいいのでしょうか。1.9 ではまた違う形式になっていますが、
> |これは変更し忘れですよね?
> |
> | 1.9 でまた変えるくらいなら、 1.8.6 で変えるのは避けたいのですが。
>
> 難しいところです。私の元々の意思はctime表現で曖昧性が大きい
> Timezone表現の部分を数値表現にすることだけだったのですが、
> Timezon表現の位置について悩んでいるうちにそのままRFC2822形式
> になってしまったという経緯があります(当初、RFC2822とctime形
> 式の違いを十分に認識していなかった)。

 本当に RFC 2822 形式が欲しいならそれ用のメソッド(time.rb の
Time#rfc2822 なり自作メソッドなり)を使うべきなので、 to_s が
RFC 2822 形式である必要はないでしょうね。

 それはさておき、 inspect は usec を含む形式に変えた方がいいん
じゃないでしょうか。(ctime や RFC 2822 は usec を含められない)

> で、Ruby 1.9ではISO8601形式(ただし区切りのTは使わない)にしよ
> うと思っています。元々1.8の範囲内では小さな変更にして、1.9の
> ときに大きな変更にしようと思っていましたから。

 1.9 の rdoc は実装を反映していません。今の仕様は ISO 8601
でも YAML 準拠でもなく中途半端なので、この機会に実装も変えて
しまった方がいいと思いますが。

Index: time.c
===================================================================
--- time.c	(revision 11998)
+++ time.c	(working copy)
@@ -1185,11 +1185,14 @@
  *     time.to_s    => string
  *
  *  Returns a string representing <i>time</i>. Equivalent to calling
- *  <code>Time#strftime</code> with a format string of ``<code>%a</code>
- *  <code>%b</code> <code>%d</code> <code>%H:%M:%S</code>
- *  <code>%Z</code> <code>%Y</code>''.
+ *  <code>Time#strftime</code> with a format string of
+ *  ``<code>%Y-%m-%d</code> <code>%H:%M:%S</code> <code>%z</code>''
+ *  for local times and
+ *  ``<code>%Y-%m-%d</code> <code>%H:%M:%S</code> <code>UTC</code>''
+ *  for UTC times.
  *
- *     Time.now.to_s   #=> "Wed Apr 09 08:56:04 CDT 2003"
+ *     Time.now.to_s       #=> "2003-04-09 08:56:04 -0500"
+ *     Time.now.utc.to_s   #=> "2003-04-09 13:56:04 UTC"
  */

 static VALUE


> というわけで、今さらではありますが、私は
>
>   * 1.8の範囲内ではRFC2822は採用せず、Timezoneを数値表現にす
>     るだけ(つまり、1.8.5の状態に戻す)
>
>   * 1.9でISO8601形式に
>
> というのを提案します。が、すっかり忘れて放置していたのは私で
> すし、もう時期も時期ですから、最終的な判断はknuさんに任せま
> す。

 変えるに足る理由が見つからないので、 1.8.6 は 1.8.5 の仕様に
戻そうと思います。もっと早く突っ込んでおけばよかった。

--
                     /
                    /__  __            Akinori.org / MUSHA.org
                   / )  )  ) )  /     FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ /  ( (__(  @ iDaemons.org / and.or.jp

"Different eyes see different things,
    Different hearts beat on different strings --
       But there are times for you and me when all such things agree"

In This Thread