de mes excuses pour le titre de sondage en désordre, ne savait pas comment exprimer cela d'une manière concise ...Énumération clés de dictionnaire de rubis en utilisant les entrées du dictionnaire
Je cherche à créer un objectif général Vagrantfile à des fins diverses de test en utilisant un dictionnaire comme celui ci-dessous.
BOXES = {
'bo': ['zesty-lxc', 4],
'sw': ['zesty-lxc', 4],
'db': ['centos-lxc', 4]
}
Ce qui me donnerait une liste comme ci-dessous:
[
["bo1", "zesty-lxc"],
["bo2", "zesty-lxc"],
["bo3", "zesty-lxc"],
["bo4", "zesty-lxc"],
["sw1", "zesty-lxc"],
["sw2", "zesty-lxc"],
["sw3", "zesty-lxc"],
["sw4", "zesty-lxc"],
["db1", "centos-lxc"],
["db2", "centos-lxc"],
["db3", "centos-lxc"],
["db4", "centos-lxc"]
]
que je peux alors itérer plus tard pour créer des machines.
Vagrant.configure('2') do |config|
box_list.each do |box, name|
config.vm.define name do |subconfig|
subconfig.vm.box = box
subconfig.vm.hostname = name
end
end
end
J'ai un peu de mal à gérer cela. J'ai réussi à imprimer exactement ce que je veux en utilisant cette construction très salissant:
BOXES.map{|key, v| ([key]*BOXES[key][1]).each.with_index(1) {|machine, count| puts "#{machine}#{count} #{BOXES[key][0]}" }}
mais il ne imprime, je ne peux pas comprendre comment l'obtenir pour retourner la liste que je l'intention d'utiliser plus tard .
Toute aide serait appréciée, je suis très nouveau à ruby, seulement commencé à l'utiliser quand j'ai commencé à déconner avec vagabond.
C'est incroyable, fonctionne parfaitement. Je devrais vraiment apprendre le rubis juste pour obtenir ma tête autour de cette incroyable SUCRE! Python va toujours être ma principale référence, mais ça a l'air tellement amusant! – sharktamer