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 に答える