ruby20

Ruby 2.0 - O que há de novo?

Opa pessoal, tudo bom?

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.

Lista de símbolos


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.

Método protocolo to_h


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

Refinements

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.

É isso ai pessoal!