0

如何编写可以通过将方法名称附加到对象来调用的 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

或者,更好的是,两种方式?

4

1 回答 1

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
于 2012-04-20T12:09:14.960 回答