Uma das coisas que mais gosto em Ruby é o fato da linguagem mudar a sua forma de pensar. Por exemplo, olhe o código abaixo:

foobar = FooBar.find(:first)
if foobar.age >= 18
  puts 'Olá, você é maior de idade'
end

Mas, como você já é um programador experiente, sabe que foobar pode ser nulo (nil) e com isso ter problemas com o código acima. Desta forma você faria:

foobar = FooBar.find(:first)
if foobar && foobar.age >= 18
  puts 'Olá, você é maior de idade'
end

Desta forma você garante que só irá chamar foobar.age se foobar não for nulo. Mas, tem um jeito muito mais Ruby Way de se fazer isso. Olhe só o que encontrei neste post:

class NilClass
  def maybe(*a); self; end
end

class Object
  alias :maybe :send
end

age = FooBar.find(:first).maybe(:age)

Dessa forma, se FooBar.find(:first) retornar nulo, .maybe(:age) irá retornar nulo, ao invés de um erro falando que a Classe Nil não tem o “método” .age. Evidentemente isto não irá revolucionar a vida de ninguém, mas é apenas um exemplo de como podemos explorar o novo paradigma que ruby trouxe.

No TweetBacks yet. (Be the first to Tweet this post)