2006年4月 9日

[ruby-list:41984] Timeクラスの継承について

はじめまして。島津と申します。
標記についてお伺いしたくメールいたしました。

祝日情報を含む、「Dayクラス」を Timeクラスを継承して
作成したいと考えています。書籍などで継承方法を確認しつつ、
このようにしてみたのですが、

-----------------------------

class Day < Time
attr_accessor :date, :holiday

def initialize( year, month, day )
super.mktime(year, month, day)
@holiday = ""
end
end

day = Day.new( 2006, 4, 7 )
p day
-----------------------------

下記のエラーが表示されてしまいます。

-----------------------------
$ ruby timeclass.rb
timeclass.rb:10:in `initialize': wrong number of arguments (3 for 0)
(ArgumentError)
from timeclass.rb:10:in `initialize'
from timeclass.rb:15:in `new'
from timeclass.rb:15
-----------------------------

下記のように書けば、エラーはないのですが、
これはそもそも継承とはいえなさそうですし、
日付情報格納のためのクラスなのに、「day.date」と
書かなくてはならないのは、スマートではなさそうな気がしています。

-----------------------------
class Day < Time
attr_accessor :date, :holiday

def initialize( year, month, day )
@date = Time.mktime(year, month, day)
@holiday = ""
end
end

day = Day.new( 2006, 4, 7 )
p day.date
-----------------------------

初歩的かと思いますが、
ML検索などでは、答えを得られませんで
どのようにもならない状況につき質問させていただきました。

恐れ入りますが、
何卒よろしくお願い申し上げます。


--
Yuki SHIMAZU
y.shimazu@xxxxx

投稿者 xml-rpc : 2006年4月 9日 12:36
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/41832
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。