Novedades en Edge Rails #7

Nota: Este artículo es traducción del publicado el 19 de Diciembre de 2008 por Mike Gunderloy en el blog de Ruby on Rails.
El equipo de Rails no ha estado precisamente hibernando esta semana: diversos desarrolladores han hecho 50 entregas a la rama edge. A continuación enumeramos las que creemos que son las novedades más importantes de la semana.

Rails Metal

Si has estado al tanto de Rails, seguramente habrás leído acerca de Metal esta semana: puntos de acceso super-rápidos dentro de nuestras aplicaciones Rails que se saltan las rutas y Action Controller para proporcionarnos velocidad pura y dura (con el coste de perder todas las bondades de Action Controller, por supuesto) Esto se basa en todo el trabajo efectuado recientemente para hacer que Rails compatible con Rack. En vez de explicar Metal con más detalle, vamos a ver algunos enlaces donde se puede leer más:

Almacenamiento de Sesiones basado en Rack

Un cambio muy importante ha empujado los fundamentos del almacenamiento de sesiones en Action Controller hasta el nivel de Rack, algo que ha llevado bastantes cambios en el código, si bien debería ser totalmente transparente en nuestras aplicaciones Rails (como bola extra, algunos fragmentos del antiguo gestor de sesiones CGI fueron eliminados) Esto también es importante por una razón: ahora las aplicaciones no Rails basadas en Rack que tengamos compatirán los mismos manejadores de almacenamiento de sesión (y por tanto la misma sesión) que nuestras aplicaciones Rails. Además, la sesiones ahora se cargan bajo demanda (en la línea de las mejoras en la carga del resto del framework) commit Ha habido otro cambio relacionado que proporciona identificadores de sesión persistentes para las sesiones de cookies, con un API compatible para las sesiones alojadas en el servidor. commit

Manejo de tipos MIME

Ha habido un par de cambios en el código qe gestiona los tipos MIME en Rails. En primer lugar MIME::Type ahora implementa el operador =~ lo que hace las cosas mucho más sencillas cuando uno tiene que comprobar la presencia de un tipo que tiene sinónimos operator
if content_type && Mime::JS =~ content_type
  # hacer algo chulo
end

Mime::JS =~ "text/javascript"        => true
Mime::JS =~ "application/javascript" => true
El otro cmbio es que el framework ahora usa code>Mime::JS cuando comprueba en diversos sitios si recibe Javascript , con lo que el manejo de estas alternatias es ahora más limpio. commit commit

Mejoras en Active Record

Aunque Active Record ha sido parte de Rails desde siempre, la gente está aún arrancando mejoras de uso y rendimiento aquí y allí. Esta semana se hicieron entregas para dejar de generar algunas consultas inútiles cuando se trabaja con asociaciones belongs_to (commit), para dar mejores mensajes de errores en llamadas find_by_foo! que no tienen éxito (commit), para arreglar cuestiones de precarga de asociaciones (commit y commit), para mejorar el rendimiento con el adaptador de MySQL (commit).

Esto y lo otro

¿Recuerdan la eliminación de ruido en los archivos de log que se incorporó hace un par de semanas? Pues basado en esto, ahora se ha embellecido la salida de cualquier Gem en los volcados de trazas. commit Si estamos en edge, Rails ahora nos oblig a tlizar Mocha 0.9.3 o superior para poder ejecutar los tests. commit Se ha mejorado algo también el manejo de ETag: Rails no enviará la cabecera Etag cuando la respuesta no tiene contenido o cuando se envían archivos con send_file. commit Y si queremos rastrear quién ha colaborado con Rails en el pasado, ahora es mucho más fácil gracias a la enorme tarea de recolección de datos de Xavier Noria: repasó todos los changelogs y normalizó los nombres de los autores, así que ahora ya no tenemos el embrollo de nombres y direcciones de correo commit
blog comments powered by Disqus