В некоторых книгах упоминается некоторый драгоценный камень, чтобы украсить цифры с помощью #days, #megabytes, #minutes и т.д. Это только в ActiveSupport или есть меньший камень, который предоставляет эту функциональность для использования в (небольших) не-рельсах драгоценные камни? Я хочу использовать эту функциональность как часть DSL в крошечной маленькой драгоценности.
3.days.ago, 2.hours.from_now и т.д. Без Rails?
Ответ 1
Я не уверен, есть ли еще один драгоценный камень помимо ActiveSupport, но было бы очень просто сделать небольшую версию:
class Fixnum
SECONDS_IN_DAY = 24 * 60 * 60
def days
self * SECONDS_IN_DAY
end
def ago
Time.now - self
end
end
3.days.ago #=> 2011-06-18 08:45:29 0200
from_now может быть реализован как ago, но с + self и weeks, hours и т.д., как days, используя разные константы.
Ответ 2
ActiveSupport имеет эту функцию. Он первоначально был частью Rails, но теперь может использоваться отдельно.