Как правильно оформить to_yaml - PullRequest
0 голосов
/ 02 марта 2012

Я хочу сохранить некоторую информацию о конфигурации для нескольких приложений, чтобы я мог создать «ящик приложений».Я храню информацию в массиве, который выглядит следующим образом -

[["page_view", {"path"=>"somepath/asdf/asdf", "name"=>"Page View"}], ["outage_impact", {"path"=>"newpath/asdf/asdf", "name"=>"Outage Impact"}]]

, но когда я использую to_yaml в этом массиве, я получаю следующий вывод:

--- 
- - page_view
  - path: somepath/asdf/asdf
    name: Page View
- - outage_impact
  - path: newpath/asdf/asdf
    name: Outage Impact 

В идеале я хочу что-то ещекак это:

page_view
  path: somepath/af/asdf
  name: blah
outage_impact
  name: blah
  path: adsf/adsf/asdf

Я пытался найти больше информации о методе to_yaml, но это было мало и далеко между.Я думаю, что мой массив, возможно, должен быть отформатирован по-другому, но я угадывал и проверял некоторое время безрезультатно.

Должен ли я вообще использовать метод to_yaml или другой метод будет работать лучше?

1 Ответ

1 голос
/ 02 марта 2012

Преобразование его в хеш с последующим использованием to_yaml даст аналогичный вывод для вашего примера (но с --- в начале)

arr = [["page_view", {"path"=>"somepath/asdf/asdf", "name"=>"Page View"}], ["outage_impact", {"path"=>"newpath/asdf/asdf", "name"=>"Outage Impact"}]]

puts Hash[*arr.flatten].to_yaml

дает:

---
page_view:
  path: somepath/asdf/asdf
  name: Page View
outage_impact:
  path: newpath/asdf/asdf
  name: Outage Impact
...