Построение ха sh из строки ввода - PullRequest
0 голосов
/ 17 января 2020

Учитывая строки с двоеточием в качестве разделителя -

1:s11-base:running:/zones/s11-base:3f9d522c:solaris:excl:-:none:<br>
2:s11-template:running:/zones/s11-template:ce57a4db:solaris:excl:-:none:<br>
...

как я могу создать га sh как

"zoneid" => "1",
"zonename" => "s11-base",
"state" => "running",

следующий га sh

"zoneid" => "2",
"zonename" => "s11-template",
"state" => "running",

и т. Д.

Я хочу выполнить итерации по всем строкам и назначить значение c для ключей каждой строки.

Ответы [ 2 ]

2 голосов
/ 17 января 2020

Что-нибудь подобное?

input.lines.map do |line|
  id, name, state = line.split(":")
  { "zoneid" => id, "zonename" => name, "state" => state }
end
0 голосов
/ 17 января 2020

Вы можете использовать String#split:

str = "1:s11-base:running:/zones/s11-base:3f9d522c:solaris:excl:-:none:<br>"

splitted_str = str.split(":")
# => ["1", "s11-base", "running", "/zones/s11-base", "3f9d522c", "solaris", "excl", "-", "none", "<br>"]

my_hash = {"zoneid": splitted_str[0], "zonename": splitted_str[1], "state" => splitted_str[2]}
# => {:zoneid=>"1", :zonename=>"s11-base", "state"=>"running"}
...