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'