
Vi esta dica no blog do Chris Wanstrath, um dos funcionários da Ett Free. Pense em quantas vezes você já fez algo assim:
def name
@person ? @person.name : nil
end
Agora imagine como seria fácil se pudéssemos fazer a mesma coisa assim:
def name
@person.try(:name)
end
Pois é… inclua este código abaixo em seu projeto e seja feliz.
class Object
##
# @person ? @person.name : nil
# vs
# @person.try(:name)
def try(method)
send method if respond_to? method
end
end
É engraçado como normalmente as melhores soluções são as mais simples…
Pois é, Carlos!
Essa é uma das coisas que eu sempre usei, mas nunca fiquei feliz olhando para um código assim! Acho que a maior vantagem de Ruby e Rails serem tão simples é que toda a comunidade que trabalha com eles pensa da mesma forma e tenta simplificar ao máximo todas as tarefas!
Abraço e muito sucesso! :D
Felipe Giotto.
Simples e elegante!