2012-04-20 119 views
0

如何編寫可以通過將方法名稱附加到對象來調用的ruby方法?調用自寫ruby方法的方法

即得到指定日期的季度期間

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 

我現在可以用這個方法是這樣的:

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