Executando métodos sem se preocupar com exceções no Ruby
14/07/08
Cansado de ter que verificar se um objeto existe antes de chamar algum método ou acessar um atributo?
if @object && @object.some && @object.some.fancy && @object.some.fancy.call
# do something
else
puts "meh. i don't like this syntax!"
end
Concordo que isto não é muito comum, mas você já deve ter feito algo como isto:
if @object && @object.respond_to?(:some_method) && @object.some_method
# do something
end
Evite este tipo de aborrecimento trazido por estas verificações, adicionando um método como este:
def try(&block)
raise 'No block given' unless block_given?
yield rescue nil
end
if try { @objet.some.fancy.call }
# do something
else
puts 'hey! this call returned nil, false or threw an exception'
end
Muito mais com a cara de Ruby, não acha?
- Permalink
- Trackback
- Comentários (4)
- Ao som de: Kay Hanley – Mean Streak
