Logo de La Coctelera

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

3 comentarios

  1. 24 Ago 2006 | 01:51 AM # Aníbal Rojas dice:

    Off Topic: Esta es una invitación a registrar tu blog en RubyCorner.com, un espacio dedicado a la comunidad de blogs alrededor de Ruby, Rails y las demás tecnologías asociadas.

  2. 24 Ago 2006 | 08:05 AM # a!e dice:

    Y yo estoy enamorado de esto:

    time_ago_in_words(post.created) unless post.created.nil?

    :D

  3. 24 Ago 2006 | 04:29 PM # Edgar dice:

    Tienes contenido interesante en español de RubyOnRails.

    Te invito a que registres tu blog en http://rubycorner.com - un directorio de blogs relativos a Ruby y Rails.

    Salu2

Escriba un comentario: