Эти модули date_and_time
существуют потому, что они являются модулями, включенными во все расширения ядра Date
, Time
и DateTime
.Эти модули расширяют эти классы теми же методами.Следовательно, они сгруппированы в Date и Time, потому что вы получаете одинаковые новые методы для всех классов.
Таким образом, они являются модулями, предназначенными для включения в качестве расширений.Вы не можете требовать их отдельно и ожидать новых функциональных возможностей, если только вы не собираетесь использовать их для расширения функциональных возможностей класса с помощью include
.
Вот пример непосредственно из исходного кода Rails о том, как он используется (взято из core_ext/date/calculations
в этом случае):
require "active_support/core_ext/date_and_time/calculations"
class Date
include DateAndTime::Calculations
...
end
Вы можете посмотреть на источник самостоятельно или проверить документы для добавления методов.
Например, с этим расширением в Date
и Time
теперь вы можете сделать:
Time.now.last_year
Date.today.last_year
Один и тот же метод доступен для обоих классов.