Carlos Brando

Nome do Jogo

O método try()

494863115_d6ee04b511.jpg

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…

Comments