У меня есть такая структура в Ruby:
[
{“type"=>"Action", "parameterized"=>false, "groups"=>["feed"], "value"=>"feed”},
{"type"=>"State", "parameterized"=>true, "groups"=>["group"], "value"=>"group:%1s”},
{"type"=>"Action", "parameterized"=>false, "groups"=>["challenge", "build"], "value"=>"challenge:build”},
{"type"=>"Action", "parameterized"=>false, "groups"=>["challenge", "decorate"], "value"=>"challenge:decorate”},
{"type"=>"Action", "parameterized"=>false, "groups"=>["report"], "value"=>"report”},
{"type"=>"Action", "parameterized"=>false, "groups"=>["report", "complete"], "value"=>"report:complete”},
]
Элементы в массиве могут располагаться в любом порядке, и я хочу, чтобы он был разобран в древовидную структуру, чтобы при наличии соответствующих групп (каждаяМассив groups приходит в том порядке, в котором первый является корнем, а следующий является дочерним по отношению к первому, а следующий снова является дочерним по отношению к предыдущему и т. д.) объединяются в одну и ту же ветвь в дереве.Если есть «параметризованный» параметр, это также приводит к дополнительной ветке в дереве.Я хочу, чтобы приведенная выше структура в итоге выглядела следующим образом:
{
"Action" => {
"feed" => {
"value" => "feed"
},
"challenge" => {
"build" => {
"value" => "challenge:build"
}
"decorate" => {
"value" => "challenge:decorate"
}
},
"report" => {
"value" => "report",
"complete" => {
"value" => "report:complete"
}
}
},
"State" => {
"group" => {
"parameterized" => {
"value" => "group:%1s"
}
}
}
}
Любая идея.как это сделать в Ruby?
С уважением
Søren