2012-04-20 7 views
0

メソッド名をオブジェクトに追加することで呼び出すことができるルビメソッドを作成するにはどうすればよいですか?自己記述型ルビメソッドを呼び出す方法

すなわち、指定された日付

def quarter(dateObject) 
    quarters = { 1 => 1, 2 => 1, 3 => 1, 4 => 2, 5 => 2, 6 => 2, 7 => 3, 8 => 3, 9 => 3, 10 => 4, 11 => 4, 12 => 4 } 
    quarters[dateObject.month] 
end 

の1/4周期を取得し、私はこのようになりました。この方法を使用することができます。

quarter(Date.today) 

が、どのように私はこのようにそれを使用するように管理するか:

Date.today.quarter 

、さらには、どちらの方が良いでしょうか?

答えて

2

クラスにパッチを当てることができます。あなたがやっていることに注意して、クラスを修正するときにメソッドが既に存在していないことを確認してください。

class Date 
    def quarter 
    quarters = { 1 => 1, 2 => 1, 3 => 1, 4 => 2, 5 => 2, 6 => 2, 7 => 3, 8 => 3, 9 => 3, 10 => 4, 11 => 4, 12 => 4 } 
    quarters[self.month] #self is your instance of the Date object 
    end 
end 
関連する問題