Ваш пример действителен YAML (удобное место для проверки - YPaste ), но не определено, что делает слияние.В соответствии с spec ключ объединения может иметь значение:
- Отображение, в этом случае оно объединяется с родительским отображением.
- Последовательность отображений, в этом случае каждый из них, один за другим, объединяется в родительское отображение.
Нет способа объединения последовательностей.Вы можете, однако, сделать это в коде.Используя YAML из вашей второй идеи:
mobile:
- *SAMMY
вы получите вложенные последовательности - так сгладьте их!Предполагая, что у вас есть отображение таких вложенных последовательностей:
data = YAML::load(File.open('test.yaml'))
data.each_pair { |key, value| value.flatten! }
(Конечно, если у вас более сложный файл YAML, и вы не хотите, чтобы каждая последовательность была сглажена (или они не все последовательности), вам придется сделать некоторую фильтрацию.)