Tengo problemas para obtener acceso al xml sin formato desde un objeto Builder :: XmlMarkup.TypeError: no se puede convertir Builder :: XmlMarkup en Array
irb> xml = Builder::XmlMarkup.new(:target => '')
=> <pretty_inspect/>
irb> xml.foo("bar")
=> "<pretty_inspect/><foo>bar</foo>"
irb> puts xml
TypeError: can't convert Builder::XmlMarkup to Array (Builder::XmlMarkup#to_ary gives String)
from (pry):122:in `puts'
En un guión en el que estoy usando Builder para crear el XML, estoy pasando @xml a un POST:
response = HTTParty.post(API_ENDPOINT, :body => @xml)
Esto da el mismo error:
TypeError (can't convert Builder::XmlMarkup to Array (Builder::XmlMarkup#to_ary gives String)):
Por supuesto, si hago @xml.to_xml, no devuelve un error, pero agrega </to_xml>
al xml, lo que significa que en realidad no está convirtiendo el objeto XML en xml. Eso no es lo que quiero.
Entonces, ¿cómo puedo obtener acceso al xml para poder pasarlo a mi publicación sin agregar nodos adicionales a mi xml?
Editar: posible solución
Haciendo @xml.target!
parece resolver el problema, pero no estoy seguro de entender por qué.
response = HTTParty.post(API_ENDPOINT, :body => @xml.target!)
Quizás alguien pueda ayudarme a entender lo que está sucediendo aquí.