ruby-listのみなさん,

なひ,と言います.(一部で)a.k.a. なかひろです.(^_^;

> From: hisanori / sitc.toshiba.co.jp [mailto:hisanori / sitc.toshiba.co.jp]
> Sent: Tuesday, February 23, 1999 7:17 PM

> なかひろさんといえばお久しぶりですね。

何年ぶりなんでしょうか...お久しぶりです.(^_^;

> > 社内ユーザから,
> > 「1999/2/30とかでエラーになる」という報告を受け,
> > request/CreateMeeting.rb,EditAttendance.rb,EditMeeting.rbの
> > Date.newからraiseされるArgumentErrorをrescueするように
> > 変更しました.その変更の過程で,
> 
> ガン。ほんとだ。直します、ってどういう風に直されました?
> EditAttendancd.rbに手を入れたとなると、僕がやりそうな修正とは違う気が
> するので教えてください。

う.単純にtry-catchしてreturnしてしまいました.
なんかまずそうですね.(^_^;
ここはちゃんと追ってからレポートすべきですが,
Tokyo.pm
http://tokyo.pm.org/
の第1回Tokyo.pmミーティング
http://tokyo.pm.org/meeting.html
の時間が迫っているので,そのままpatchを流してしまいます.すいません.

Help.rbとかいうのは,前のメイルで書いていた
ヘルプリクエストハンドラです.無視してください.

正しい(Rubyらしい/設計思想に合致した)修正方法を
指摘してくださると嬉しいです.m(..m

> > あるいは松尾さん,今後の拡張予定に入っていたりしますでしょうか.(^_^;
> 
> 気持ちはあります。でも優先順位はちょっと低いです。

期待しながら気長に待ちたいと思います.(^-^)

> # 複数の言語をサポートするときに美しいやり方ってどんなんだろう?

Rubyにおいて,リソースファイルの切り替えに相当する概念は...
どうなるんでしょう.(^_^;
script言語だと,実行時に読み込まざるを得ないんでしょうか...

	/	/	/

diff -u1r ../Meeting2000-0.92/request/CreateMeeting.rb request/CreateMeeting.rb
--- ../Meeting2000-0.92/request/CreateMeeting.rb	Fri Feb 19 19:19:19 1999
+++ request/CreateMeeting.rb	Fri Feb 19 23:06:23 1999
@@ -25,3 +25,8 @@
 
-  date = Date.new(data['year'].to_i,data['month'].to_i,data['day'].to_i)
+  begin
+    date = Date.new(data['year'].to_i,data['month'].to_i,data['day'].to_i)
+  rescue ArgumentError
+    return ['DialogCreateMeeting','存在しない日付です。']
+  end
+
   meeting = Meeting.new(data['meeting-name'],user,date)
diff -u1r ../Meeting2000-0.92/request/EditAttendance.rb request/EditAttendance.rb
--- ../Meeting2000-0.92/request/EditAttendance.rb	Fri Feb 19 19:19:19 1999
+++ request/EditAttendance.rb	Tue Feb 23 11:55:31 1999
@@ -11,3 +11,7 @@
     if k =~ /(\d\d\d\d)-(\d\d)-(\d\d)-check/ then
-      date = Date.new($1.to_i,$2.to_i,$3.to_i)
+      begin
+        date = Date.new($1.to_i,$2.to_i,$3.to_i)
+      rescue ArgumentError
+        return ['DialogEditAttendance','存在しない日付です。']
+      end
       dates[date] = TRUE
diff -u1r ../Meeting2000-0.92/request/EditMeeting.rb request/EditMeeting.rb
--- ../Meeting2000-0.92/request/EditMeeting.rb	Fri Feb 19 19:19:19 1999
+++ request/EditMeeting.rb	Tue Feb 23 11:54:14 1999
@@ -56,5 +56,9 @@
   if data['year'] && data['month'] &&	data['day'] then
-    meeting.date = Date.new(data['year'].to_i,
-			    data['month'].to_i,
-			    data['day'].to_i)
+    begin
+      meeting.date = Date.new(data['year'].to_i,
+			      data['month'].to_i,
+			      data['day'].to_i)
+    rescue ArgumentError
+      return ['DialogEditMeeting','存在しない日付です。']
+    end
   end
@@ -64,3 +68,7 @@
     if k =~ /(\d\d\d\d)-(\d\d)-(\d\d)-check/ then
-      date = Date.new($1.to_i,$2.to_i,$3.to_i)
+      begin
+        date = Date.new($1.to_i,$2.to_i,$3.to_i)
+      rescue ArgumentError
+        return ['DialogEditMeeting','存在しない日付です。']
+      end
       meeting.dates[date] = TRUE
Only in request: Help.rb
diff -u1r ../Meeting2000-0.92/request/Request.rb request/Request.rb
--- ../Meeting2000-0.92/request/Request.rb	Fri Feb 19 19:19:19 1999
+++ request/Request.rb	Mon Feb 22 20:26:08 1999
@@ -48 +48,2 @@
 require 'SelectMeetingToJoin.rb'
+require 'Help.rb'