Überschreibungsmethode durch eine andere im Modul definierte Methode

Möchte ich definieren eine Instanz-Methode Date#next die gibt den nächsten Tag. Also machte ich einen DateExtension Modul, so wie dieses:

module DateExtension
  def next(symb=:day)
    dt = DateTime.now
    {:day   => Date.new(dt.year, dt.month, dt.day + 1),
     :week  => Date.new(dt.year, dt.month, dt.day + 7),
     :month => Date.new(dt.year, dt.month + 1, dt.day),
     :year  => Date.new(dt.year + 1, dt.month, dt.day)}[symb]
  end
end

Mit:

class Date
  include DateExtension
end

Aufruf der Methode d.next(:week) macht Ruby wirft einen Fehler ArgumentError: wrong number of arguments (1 for 0).
Wie kann ich den Standardwert überschreiben next Methode von Date Klasse mit der man erklärte, im DateExtension Modul?

InformationsquelleAutor der Frage resilva87 | 2011-05-10

Schreibe einen Kommentar