Daily Archives for Sunday, September 2007

RailsConf Europa a punto de empezar

Para el mundo del desarrollo con Ruby on Rails es una semana importante ya que en Berlín se realiza la conferencia anual europea de desarrolladores. En esta conferencia se suelen anunciar novedades y se realizan todo tipo de sesiones sobre esta Web Framework.

He creado una lista en la que se pueden seguir los principales blogs, fotos  y lugares web sobre esta conferencia. Además ya está disponible el nuevo sistema de feeds de L-exp que nos permite seguir las novedades de una y de más listas ( para saber más).

Y a lo que iba:

Seguir el evento RailsConf Europe 2007

Podéis también subscribiros a la lista

Mostrando la diferencia entre fechas con texto

En internet uno de los temas que enseguida te das cuenta es que las fechas absolutas no tienen sentido ya que debido al cambio horario poca gente encontrarás que le coincida. Por tanto es muy útil mostrar el tiempo que ha pasado desde que se ha actualizado un determinado elemento. Asi cualquier persona que lo lea si que tendrá una visión relativa y útil de lo que ha pasado.

Os adjunto una función muy casera que he desarrollado por si alguien la quiere utilizar:

def diff_date_to_words(datec,language)
  result=”
  diff=Time.now-datec
  daysc=(diff/(60*60*24)).to_int
  hoursc=((diff/(60*60*24)-daysc)*24).to_int
  minutesc=((((diff/(60*60*24)-daysc)*24)-((diff/(60*60*24)-daysc)*24).to_int)*60).to_int
  secondsc=((((((diff/(60*60*24)-daysc)*24)-((diff/(60*60*24)-daysc)*24).to_int)*60)-((((diff/(60*60*24)-daysc)*24)-((diff/(60*60*24)-daysc)*24).to_int)*60).to_int)*60).to_int
  monthsc=(daysc/30).to_int
  if language==’En’ then
    result = daysc.to_s + ‘ days, ‘+hoursc.to_s+’ hours, ‘+minutesc.to_s+’ minutes and ‘+secondsc.to_s+’ seconds ago’
    if daysc==1 and  hoursc<2 then
      result==’Yesterday’
    end
    if daysc==0 and hoursc<1 and minutesc<1 and secondsc<20 then
      result==’now’
    end
    if daysc==0 then
      result = hoursc.to_s+’ hours, ‘+minutesc.to_s+’ minutes and ‘+secondsc.to_s+’ seconds ago’
    end
    if daysc==0 and hoursc==0 then
      result =minutesc.to_s+’ minutes and ‘+secondsc.to_s+’ seconds ago’
    end
    if daysc==0 and hoursc<1 and minutesc<1 and secondsc>=20 then
      result =secondsc.to_s+’ seconds ago’
    end
    if daysc>7 then
      result = daysc.to_s + ‘ days, ‘+hoursc.to_s+’ hours and ‘+minutesc.to_s+’ minutes ago’
    end
    if daysc>365 then
      result = ‘more than one year ago’
    end
    if monthsc>2 and daysc<365 then
      result=monthsc.to_s+’ months ago’
    end
    result
  end
end

Simplemente poniéndola en vuestro application helper podréis mostrar fechas en formato letras y con tiempo relativo.

p.e:

1 minute and 3 seconds ago

Veréis que hay una variable language pero sólo está implementada en inglés.

Espero que sea de vuestra utilidad.