maeshimaの日記

メモ書きです

Builderで文字列をエスケープさせない方法

builderはデフォルトでhtmlエスケープ的なことをしてくれますが、エスケープしたくないときもあります。

xml = Builder::XmlMarkup.new :indent => 2
xml.root "<hoge></hoge>"
xml.target! # => "<root>&lt;hoge&gt;&lt;/hoge&gt;</root>"

そういうときは << を使うとおk

xml = Builder::XmlMarkup.new :indent => 2
xml.root do
  xml << "<hoge></hoge>"
end
xml.target! #=> "<root>\n<hoge></hoge></root>"