2017-04-22 3 views
0

Ich habe den folgenden Code-Block, und ich mag die Ausgabe in ein Array drehen, anstatt eine Reihe von Strings, aber ich bin nicht wirklich sicher, jetzt, dass in schieben.Ruby-Strings in ein Array schieben

default['max_log']['instances'] = 20 

servers haproxy_backends('max_logger').map { |h| 
    ("1".."#{node['max_log']['instances']}").each { |i| 
    "#{h}:83#{i} #{h}:83#{i} check inter 10s rise 2 fall 3" 
    } 
} 

Die Serverfunktion sollte eine Array-Art wie diese aufnehmen, in der alle Variablen erweitert und aufgelöst werden.

[ 
    'server1:8301 server1:8301', 
    'server1:8302 server1:8302', 
    'server2:8301 server2:8301', 
    ... 
] 

Ich habe versucht, für den Test ein paar wirklich einfache Version davon in irb zu machen, aber ich weiß es einfach nicht wirklich das, was ich tue.

a = [] 
# => [] 

def d 
    ('01'..'10').each { |i| puts i } 
end 
# => :d 

a.push(d) 
01 
02 
03 
04 
05 
06 
07 
08 
09 
10 

# => ["01".."10"] 
a 

# => ["01".."10"] 
d 
01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
# => "01".."10" 

backends = ['maxlog-1', 'maxlog-2'] 
backends.map { |h| (1..5).each { |i| puts "#{h}:#{i}" } } 

ruby test.rb 
# => maxlog-1:1 
# => maxlog-1:2 
# => maxlog-1:3 
# => maxlog-1:4 
# => maxlog-1:5 
# => maxlog-2:1 
# => maxlog-2:2 
# => maxlog-2:3 
# => maxlog-2:4 
# => maxlog-2:5 
+0

Fragen Sie, wie man ein Array von Strings erstellt? – chris

+0

Ja, ein Array von Strings, basierend auf dem Mapping des Backends-Arrays und der Erweiterung des Bereichs. –

Antwort

1

Diese Methode verwendet ein Array und hängt Elemente basierend auf einem Bereich an. Sollte ein ausreichendes Beispiel geben, um zu tun, was Sie versuchen zu tun.

myarray = []; 

def d(out, min, max) 
    (min.to_s..max.to_s).each do |idx| 
     out << "my string #{idx}" 
    end 
end 

d(myarray, 1, 10) 
puts(myarray) 
+0

Ich bin dumm. Es sieht so aus, als würde einer meiner eigenen Tests ein richtiges Array erzeugen, aber die Art, wie es ausgegeben wurde, konnte ich nicht sagen. Danke für die Hilfe. –

Verwandte Themen