В някоя книга се споменава някакъв скъпоценен камък за украсяване на числа с #days
, #megabytes
, #minutes
и т.н. Това само в ActiveSupport ли е, или има по-малък скъпоценен камък, който предоставя тази функционалност за използване в (малки) нерелсови скъпоценни камъни? Искам да използвам тази функционалност като част от DSL в малко малко бижу.
3.days.prije, 2.hours.from_now и т.н. без Rails?
comment
И аз харесвам това поведение и често съм искал да го използвам в моите нерелсови ruby проекти. Добър въпрос...
- person jaydel   schedule 21.06.2011
Отговори (3)
Не съм сигурен дали има друг наличен скъпоценен камък освен 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
, като се използват различни константи.
person
Michael Kohl
schedule
21.06.2011
Изглежда, че това може да е начинът, по който ще тръгна, благодаря. Мислех, че нещото Numeric е започнало в проект на някой друг и че ActiveSupport просто го е слял в техния собствен източник. Сигурно само си въобразявам.
- person d11wtq; 21.06.2011
много хубава работа!!
- person Chris Habgood; 18.02.2018
ActiveSupport има тази функционалност. Първоначално беше част от Rails, но сега може да се използва отделно.
person
Jordan Running
schedule
21.06.2011
Това е правилно, но имайте предвид, че вече не можете просто
require 'activesupport'
. OP ще трябва да бъде малко по-ясно какво искат да require
от activesupport. Ако просто искате време, можете да require "active_support/core_ext/numeric/time"
- person Caley Woods; 21.06.2011
Наистина не искам да разчитам на цялата ActiveSupport за това :) Това беше нещо, което се опитвах да избегна. Моят Gem е само един клас с около 30 реда код: P Но благодаря за потвърждението :)
- person d11wtq; 21.06.2011
@d11wtq тогава отговорът на Майкъл Кол би бил правилният начин. Просто разширяване на класа fixnum с нещо като метод
days
и ago
.
- person Caley Woods; 21.06.2011
това е
require 'active_support/all'
в наши дни
- person phoet; 29.01.2014
Намерих: https://github.com/kylewlacy/timerizer
person
Erik
schedule
12.10.2012
Точно това, което търсих. Не е широко използван или зрял (най-новата версия е 0.3.0; 33 звезди и 3 разклонения, докато пиша това), но е от известно време и изглежда, че е пускане, което спечели Не ме принуждавайте да добавя крак канала ActiveSupport към моя проект Hanami. Благодаря.
- person Jeff Dickey; 15.04.2018