Ruby 2.0 - O que há de novo?
A algumas semanas, o Ruby 2.0 foi lançado oficialmente. Depois de ter baixado no meu mac e dado uma lida no release notes e em alguns blogs, resolvi fazer um post com as features novas que eu achei mais legais.
No Ruby 1.9, para se criar um array de símbolos, você precisava instanciar o array e colocar os símbolos que te interessavam nele. Agora, através da notação %i (%i é uma abreviação para "intern"). Abaixo você tem um exemplo de como ele funciona:
https://gist.github.com/pedronsouza/5249660
UTF-8 como default encoding
\o/ essa é uma das boas. Lembra quando você colocava caracteres especiais no seu .rb e não sabia por que o script não funcionava? Era devido o charset aceito. Por padrão, o Ruby 1.9.x tinha encoding US-ASCII. Então você era obrigado a definir o encoding através do magic comment. Agora, no ruby 2.0, o padrão é o UTF-8, facilitando a nossa vida.
Antigamente, precisávamos criar nossa própria implementação para transformar um objeto em um hash. No ruby 2.0 isso não será mais necessário através do método to_h
https://gist.github.com/pedronsouza/5249798
Todos sabem que, em ruby, todas as classes são abertas. Você pode simplesmente, modificar um método que já existe e criar sua própria implementação. Um exemplo disse são os métodos secods, minutes, hours entre outros que você possui no ActiveSupport do Rails. Porém, no ruby 2.0 é apresentado o conceito de refinements e using, para que você possa encapsular esse novo comportamento e usa-lo apenas quando você, explicitamente, o inclui em sua classe. Segue um exemplo abaixo:
https://gist.github.com/pnicholas/5249857
De tudo que eu ví, foram as mais bacanas, mas existem outras. Vou listar abaixo alguns posts de blogs que contém outras features.
O que mudou no ruby 2.0 - SimplesIdeias
Ruby 2.0.0 By Example - Marc-Andre