Подтвердить что ты не робот

3.days.ago, 2.hours.from_now и т.д. Без Rails?

В некоторых книгах упоминается некоторый драгоценный камень, чтобы украсить цифры с помощью #days, #megabytes, #minutes и т.д. Это только в ActiveSupport или есть меньший камень, который предоставляет эту функциональность для использования в (небольших) не-рельсах драгоценные камни? Я хочу использовать эту функциональность как часть DSL в крошечной маленькой драгоценности.

4b9b3361

Ответ 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, но теперь может использоваться отдельно.