Я пытаюсь запустить программу и динамически назначать элементы, используя методы компоновщика. Проходя через мою процедуру, я пытаюсь динамически назначать элементы, используя переменные. Я попытался несколько вариантов, чтобы эта переменная передавалась хотя бы в элемент, но она не работает.
Я изначально начал с построения моих данных в хэше, однако в моей полной процедуре у меня есть дубликаты ключей, поэтому у меня былоперейти к чему-то более прямому.
можно ли достичь желаемого эффекта, используя строитель
require 'builder'
x = Builder::XmlMarkup.new(:target => $stdout, :indent => 1)
x.instruct!
x.character do
stats = "health, mana, armor"
stats.split(",").each do |stat|
key = stat.strip.downcase
value = rand()
x.key value
end #end do
end #end do
Вывод
C:\Projects>ruby test.rb
<?xml version="1.0" encoding="UTF-8"?>
<character>
<key>0.1405191069855357</key>
<key>0.3484226234753265</key>
<key>0.4658284443108096</key>
</character>
Желаемый вывод
C:\Projects>ruby test.rb
<?xml version="1.0" encoding="UTF-8"?>
<character>
<health>0.1405191069855357</health>
<mana>0.3484226234753265</mana>
<armor>0.4658284443108096</armor>
</character>