3.days.ago, 2.hours.from_now и т.д. без Rails - PullRequest
28 голосов
/ 21 июня 2011

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

Ответы [ 3 ]

36 голосов
/ 21 июня 2011

Я не уверен, есть ли другой драгоценный камень, кроме 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, с использованием различных констант.

9 голосов
/ 21 июня 2011

ActiveSupport имеет эту функцию. Первоначально он был частью Rails, но теперь может использоваться отдельно.

3 голосов
/ 12 октября 2012
...