DHH ha anunciado que ya podemos instalarnos ( a través de SVN) la versión Preview
de Rails 2.0. A todos nos ha cogido por sorpresa y antes de lo que nos esperábamos.
Ha comentado que antes del lanzamiento de 2.0 saldrá la versión 1.2.4 que será la última y contendrá los “deprecation warnings” para ayudar a migrar a 2.0.
Principales novedades de la 2.0( podéis ver las explicaciones completas en):
Action Pack: Resources
Han mejorado el sistema REST para permitir el uso de namespaces y eliminan el uso del punto y coma en las rutas para usar la barra normal.
Action Pack:Multiview
Nuevo formato de vistas con nueva nomenclatura que se pasa a llamar con la forma action.format.renderer. Por ejemplo show.erb, edit.iphone.haml o index.atom.builder.
Action Pack:Record identification
Permite convertir autómaticamente clases del modelo en rutas. redirect_to(person)
Action Pack:HTTP Loving
Han añadido un módulo para trabajar con HTTP basic Authentification. Muy sencillo.
También una mejora restructuración de los ficheros javascript permitiendonos separarlos en muchos ficheros y al añadir javascript_include_tag(:all, :cache=>true) lo convierte automáticamente en un sólo fichero con todo el javascript llamado all.js.
Action Pack: Security
Mejoras en seguridad para evitar ataques CRSF y XSS. También soporte para HTTP only cookies que aún no están en todos los navegadores.
Action Pack: Exception handling
Han mejorado el sistema de excepciones con la clausula rescue_from que nos permite controlar mejor las acciones.
Action Pack:Miscellaneous
Es más fácil crear Atom feeds utilizando la syntax del Builder. Se han hecho mejora de rendimientos. Además se ha quitado el in_place_editor y autocomplete_for.
Active Record: Performance
Creo que esta es la mejor novedad ya que realizan cache de SQL para evitar enviar la misma consulta repetidas veces. Aquí podremos ver grandes mejoras de rendimiento.
Active Record:Sexy Migrations
Alternativa para crear migraciones que permite crear varíos campos del mismo tipo a la vez.
Active Record:XML in, JSON out
Se ha añadido deserialización con Xml. Simplemente haciendo Person.new.from_xml(”David”) conseguiremos lo que esperamos. Se ha añadido serialización a JSON.
Active Record: Shedding some weight
Para hacer Active Record más pequeño se ha eliminado acts_as_XYZ y se han puesto como plugins individuales en repositorio SVN de Rails. Tan sólo hay que instalarlo como un plugin y ya está.
También han quitado todos los adaptadores de las base de datos comerciales y los han convertido en gems. Rails ahora sólo lleva MySQL , SQLite y PostgreSQL.
Esto permitirá que se puedan desarrollar mejor estos adaptadores propios y además el añadir nuevos.
Active Record: With_scope
Como ya lo habían anunciado hace tiempo ha pasado el with_scope a protegido y no podrá ser usado en controladores. Especialmente en filtros. En su lugar podrá ser ussado en los modelos que es para donde se diseño. Siempre podrá ser utilizado fura del modelo con .send(:with_scope)
ActionWebService out, ActiveResource in
Es conocido que Rails apuesta por Rest en lugar de SOAP. Siempre podremos utilzarlo añadiendo el gem.
También han pasado la nueva ActiveResource framework beta al núcleo. ActivResource es como ActiveRecord, pero para recursos.
ActiveSupport
Pocos cambios como el método Array#rand para tomar un elemento aleatorio de una matriz, Hash#except para filtrar un hash.
Action Mailer
Se han corregido errores y pequeñas mejoras.
Rails: The debugger is back
Vuelve el breakpoint en forma de debugger. Es un debugger real ya que puedes avanzar y retroceder. Habrá que instalar un gem llamado debugger y arrancar el servidor –debugger o -u. Directamente desde la terminal podremos utilizar el comando, no hará falta el script/breakpointer. El debugger se podrá usar en los test también.
Rails: Clean up your environment
Antes de 2.0 poníamos toda la configuración en Environment.rb. Ahora podemos añadir ficheros en config/initializers y se cargarán automáticamente. Las nuevas aplicaciones Rails 2.0 vendrán con dos ejemplos de inflexiones y mime_types para tus propios tipos de MIME.
Rails: Easier plugin order
Para garantizar el correcto funcionamiento de los plugins ahora puedes decirle que plugins quieres que se carguen primero.
And hundreds upon hundreds of other improvements
Estas son las principales novedades, pero solo es la superficie de mucho trabajo que se ha hecho.
Como actualizar
Primero tendremos que movernos como mínimo a Rails 1.2.3. Corregir todos los warnings de deprecation.
Para instalar la relaease preview a través de gems:
gem install rails –source http://gems.rubyonrails.org
Para probarlo desde SVN tag:
rake rails:freeze:edge TAG=rel_2-0-0_PR
Esto se trata de una preview para ir probando nuestras aplicaciones y viendo los nuevos defaults. En una semana empezarán con los Release Candidates ( los que hagan falta).
En definitiva se vienen buenos cambios y tengo ganas de probar el rendimiento de estos. Llevan seis meses trabajando con ellos y al fin han llegado.
Os recomiendo que os miréis los comentarios del anuncio ya que explican más novedades y enlazan a explicaciones.
Otros enlaces:
Agradecimientos de DHH al equipo
Nuevos gem Adapters disponibles
Anuncio DHH