Допустим, у меня есть следующие классы в Ruby:
class Person
attr_accessor :name, :car
end
class Car
attr_accessor :maker
end
Существует ли гем в ruby, который позволил бы мне сериализовать экземпляр Person в XML и позволил бы добавить настраиваемые атрибуты вXML-теги тоже? (предпочтительно декларативный API, где я могу либо назначить атрибуты определенному тегу внутри объявления attr_accessor
, либо сразу для всех тегов в виде хэша, возвращенного функцией).
Например,Я хочу добиться чего-то вроде этого:
<Person>
<Name origin="American">
Mark
</Name>
<Car from="My friend">
<Maker>
Honda
</Maker>
</Car>
</Person>
https://github.com/rails/activemodel-serializers-xml не позволяет вам устанавливать пользовательские атрибуты (функция атрибутов в примерах фактически устанавливает теги, а не атрибуты). Переопределение to_xml
не позволяет мне изменять существующие теги, и я бы не стал добавлять новые. Другие драгоценные камни, такие как Nokogiri, похоже, имеют более практический подход, когда вы вручную создаете xml, а не выводите его из определения класса. Спасибо за помощь.