Ruby генерирует XML-документы с периодом в атрибуте - PullRequest
0 голосов
/ 16 июня 2019

Существует множество отличных библиотек Ruby для генерации XML-документов, но я не могу найти ни одной, которая бы поддерживала создание атрибутов XML с точками в их именах.

Конечная цель здесь - создатьRuby lib, который автоматически генерирует шаблоны Jenkins.

Вот пример параметра поля задания Jenkins, который, как вы можете видеть, использует атрибуты с точками в имени:

<properties>
  <hudson.model.ParametersDefinitionProperty>
    <parameterDefinitions>
      <hudson.model.StringParameterDefinition>
        <name>MESSAGE</name>
        <description/>
        <defaultValue>Hello world!</defaultValue>
      </hudson.model.StringParameterDefinition>
    </parameterDefinitions>
  </hudson.model.ParametersDefinitionProperty>
</properties>

Кто-нибудь знаеткак я мог это сделать?Любой способ согнуть библиотеки, которые уже существуют, чтобы поддержать это?

1 Ответ

0 голосов
/ 16 июня 2019

Решение заключается в использовании динамической диспетчеризации:

builder = Nokogiri::XML::Builder.new do |xml|
  xml.properties {
    xml.send('foo.bar', 'zaa')
  }
end
<?xml version="1.0"?>
<properties>
  <foo.bar>zaa</foo.bar>
</properties>
...