ActiveSupport::Numeric::Time
18 Ago 06
En realidad es ActiveSupport::CoreExtensions::Numeric::Time, una parte de ActiveSupport centrada en facilitarnos la vida a la hora de trabajar con fechas.
Si venís por ejemplo del mundo PHP, o en general de cualquier lenguaje (en especial los de bajo nivel), sabréis lo engorroso que puede llegar a ser, y que siempre toca desarrollarnos nuestras propias funciones o utilizar una librería adicional.
Aunque ya conocía los principales métodos, que te permiten hacer algo como:
para ver qué dia es hoy (y así con .month, .year, .hour, etcétera), hoy Sergio me ha enseñado los operadores aritméticos:
Time.now + 3.days + 12.hours
Time.now - 12.hours
Time.now + 365.days
que te devuelven (sabiendo que Time.now devuelve la hora actual como bien habréis imaginado), respectivamente, la fecha dentro de tres días y 12 horas, la hora que era hace 12 horas y la fecha dentro de 365 días.
Así de fácil, al estilo Rails.
En realidad lo que se hace es añadir a la clase Numeric de Ruby los métodos de acceso a días, meses, etcétera que hemos visto antes, con lo cuál los operadores ya pueden utilizarse y trabajar con fechas.
Por cierto, el ActiveSupport merece la pena estudiarlo. De hecho, ha ido creciendo y ganando y importancia, hasta tal punto, que en la segunda edición del Agile Web Development tiene un capítulo propio.

3 comentarios