Novedades en Edge Rails #16

Nota: Esta entrada es una traducción de la publicada por Mike Gunderloy el 13 de Marzo de 2009 en el blog de Ruby on Rails.

Ha habido mucho ajetreo en la parte de desarrollo desde el lanzamiento de Rails 2.3 RC2. El equipo del core ha estado haciendo un serio esfuerzo para revisar todos los errores abiertos y parches enviados con vista a tener una versión sólida. En este punto, el listón para aceptar nuevas funcionalidades está bastante alto pero incluso así ha habido 94 entregas esta semana desde RC2. En su mayoría son correcciones para garantizar el comportamiento y estabilidad esperados. He aquí lo más destacado.

Parsers intercambiables para XMLmini

El soporte para lectura de XML en ActiveSupport se ha hecho más flexible permitiéndonos quitar y poner diferentes analizadores. Por defecto, utiliza la implementación estándar REXML pero se puede especificar fácilmente las implementaciones LibXML o Nokogiri en nuestras propias aplicaciones siempre que tengamos por supuesto las gemas instaladas:

XmlMini.backend = 'LibXML'
XmlMini.backend = 'Nokogiri'

commit commit

Reescritura de la tarea rake gem

Las interioridades de las varias tareas rake gem se han revisado de manera sustancial para que el sistema funcione mejor en una variedad de casos. El sistema de gemas ahora conoce las distintas dependencias de los entornos de desarrollo y producción, tiene un sistema de desempaquetado más robusto, da más información cuando se le pregunta acerca del estado de las gemas y es menos dado a tener problemas de dependencias (del estilo de la gallina y el huevo) cuando se instala todo desde cero. También hay correcciones del uso del comando gem bajo JRuby y para las dependencias que intentan instalar copias externas de gemas que ya están en el directorio /vendor

commit commit commit

Correcciones en las rutas

Ha habido un par de correcciones menores en el motor de rutas. En primer lugar, las rutas miembro con requisitos funcionan ahora (anteriormente se ignoraban estos requisitos):

map.resources :orders, 
   :requirements => { :id => %r([^/;,?]+) }, 
   :member => { :accept => :get }

commit

También las rutas llanas funcionan adecuadamente con los espacios de nombre (commit) y podemos utilizar ahora el verbo OPTIONS en las condiciones de la ruta (commit).

Mejoras en la caché del lado del cliente

Los métodos expires_in, stale, y fresh_when aceptan la opción :public para que funcionen adecuadamente bajo proxies de caché.

  expires_in 10.minutes, :public => true
  fresh_when :last_modified => @user.updated_at.utc, 
             :public => true
  fresh_when :etag => @user, :public => true

commit

Esto y lo otro

El método String#parameterize ahora acepta un carácter separador opcional.

  "Mi gran pato".parameterize =>      "mi-gran-pato" 
  "Mi gran parto".parameterize('_') => "mi_gran_pato"

commit

El método ActiveRecord::Base#invalid? ahora funciona como el contrario de ActiveRecord::Base#valid?. (commit)

El método ActiveSupport::Json.decode ahora gestiona secuencias de escape de tipo \u0000. (commit)

Ahora podemos definir tipos de contenido como multipart/mixed en Action Mailer. (commit)

Rails 2.3 incluirá una versión propia de Rack, pero si tenemos instalado Rack 1.0 como gema utilizará dicha versión (commit)

blog comments powered by Disqus