O @fnando realizou hoje uma palestra para testar a sua nova aplicação de apresentações com Node.js.
Dentro da abordagem do que mudou no Ruby 1.9 três coisas que acho muito legais:
Splat
Passagem de quantidade indefinada de argumentos. No Ruby 1.8 ele era aceito apenas como seu último argumento:
def teste (a,b,*c) puts c end teste(1,2,3,4,5) # => 3,4,5
No Ruby 1.9 é aceito em qualquer posição:
def teste (x,*y,z) puts y end teste(1,2,3,4,5) # => 2,3,4
TAP
O TAP é helping que sempre retorna o objeto passado para o bloco, mesmo se dentro do bloco existir outro tipo de retorno. Muito parecido como o returning do Rails.
Para exemplificar vamos ver como seria uma instanciação básica no ruby 1.8:
class User attr_accessor :name, :blog end user = User.new user.nome = "Erich Kist" user.blog = "http://erichkist.com" user # => #<user:0x9495634 @name="Erich Kist" ,="" @blog="http://www.erichkist.com">
No Ruby 1.9 com o tap:
class User attr_accessor :name, :blog end user = User.new.tap do |u| u.nome = "Erich Kist" u.blog = "http://erichkist.com" end user # => #<user:0x9495634 @name="Erich Kist" ,="" @blog="http://www.erichkist.com">
Hashrocket
A criação de hash no Ruby 1.8 se dava desta forma:
social = {
:twitter => "http://www.twitter.com",
:linkedin => "http://www.linkedin.com"
}
No Ruby 1.9 já pode utilizar assim:
social = {
twitter: "http://www.twitter.com",
linkedin: "http://www.linkedin.com"
}
Quer saber mais ? Veja o PDF guia que ele montou: O que mudou no Ruby 1.9