Я использую Builder :: XmlMarkup для создания структур данных в формате XML для сервера API RESTful.
Недавно я обнаружил ошибку, из-за которой симпатичная печать из Builder :: XmlMarkup выдает элемент, заполненный пробельным текстом вместо пустого элемента, как и должно быть.
Например, этот код:
xml.outertag do
xml.list do
# Some code which loops through a list
end
end
производит:
<outertag>
<list>
</list>
</outertag>
Если внутренний список является пустым списком, элемент должен быть пустым, т.е. или . Однако фактический XML - это тег , заполненный новой строкой и другими пробелами.
Итак, как мне вообще исключить красивую печать Builder? В настоящее время я думаю о monkey-patching Builder :: XmlMarkup, чтобы при инициализации игнорировались параметры : indent ; хотя я рассматриваю также постфильтр.