如何编写可以通过将方法名称附加到对象来调用的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
或者,甚至更好,两种方式?
答案 0 :(得分: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