调用自编的ruby方法的方法

时间:2012-04-20 12:01:41

标签: 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

或者,甚至更好,两种方式?

1 个答案:

答案 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