Ruby Oneline Rescue
Recientemente aprendí que puedes usarrescue
en una línea de código en caso de que algo salga mal en esa línea (verhttp://www.rubyinside.com/21-ruby-tricks-902.html Consejo # 21). Tengo un código que solía tener este aspecto:
if obj['key'] && obj['key']['key2'] && obj['key']['key2']['name']
name = obj['key']['key2']['name']
else
name = ''
end
Con elrescue
Método, creo que puedo cambiar ese código en algo como esto:
name = obj['key']['key2']['name'] rescue ''
Si se lanza una excepción nula a cualquier nivel de acceso al hash, debería ser atrapado por el rescate y darme '', que es lo que quiero. También podría optar por establecer el nombre anil
Si ese fuera el comportamiento deseado.
¿Hay algún peligro conocido al hacer esto? Lo pregunto porque esto parece demasiado bueno para ser verdad. Tengo un código tan feo que me encantaría deshacerme de ese aspecto como el primer ejemplo de código.