要素がある場合はその値。ない場合はデフォルト値を使用

WebAPIでリクエストを取ってきてXMLから要素を取り出すときに、要素があったら〜と書くのがメンドクサイ。

doc = REXML::Document.new(xml)
title = doc.elements["title"].text

とかやってしまうと、がなかったときに nil に対して .text を行ってしまいエラーが起きてしまう。

http://d.hatena.ne.jp/mokehehe/20080708/maybe

むしろエラーを積極的に利用して

title = doc.elements["title"].text rescue ""

とするのが良いかと。


タイトルが設定されていない場合にデフォルト文字列を渡したいときも

title = doc.elements["title"].text rescue "タイトル未設定"

で設定できるので便利。


と思ったらリンク先のページで既に紹介されてた。恥ずかしい!