Предоставление файла YAML более чем одного ключа, используя только одно значение для ключей
У меня проблема с созданием файла yaml, который будет содержать следующие ключи:
ETA SOL VETS EMC
Из этих ключей мне нужно одно значение, которое будет адресом электронной почты. Все четыре ключа являются одним и тем же адресом электронной почты. Можно ли создать файл yaml, содержащий более одного ключа и только одно значение?
Например:
agencies:
- ETA
- SOL
- VETS
- EMC
advocate_email: "example@example.com" #<= Give these four the same value
- some
- other
- ones
advocate_email: "example1@example1.com" #<= Give three another value.. So one and so forth
3 ответа
** ОБНОВЛЕНИЕ ** Я думаю, что у вас есть несколько электронных писем, и у каждой группы есть более длинный список.
group1:
email: me@email.com
list:
- ETA
- SOL
- VETS
group2:
email: me2@email.com
list:
- ONE
- TWO
- THREE
** КОНЕЦ ОБНОВЛЕНИЯ **
Если я правильно понимаю, и вы хотите тот же адрес электронной почты:
email: &email me@email.com
emails:
ETA: *email
SOL: *email
VETS: *email
Выход:
pry(main)> YAML.load(File.read('foo.yml'))
=> {"email"=>"me@email.com", "emails"=>{"ETA"=>"me@email.com", "SOL"=>"me@email.com", "VETS"=>"me@email.com"}}
Я не уверен, что это лучшее решение вашей проблемы, но вы можете использовать что угодно в качестве ключа в отображении YAML, включая последовательность (массив). Это выглядит так:
agencies:
? - ETA
- SOL
- VETS
- EMC
: advocate_email: example@example.com
? - some
- other
- ones
: advocate_email: example1@example1.com
каждый ?
обозначает ключ и последующее :
обозначает значение. Показывать:
require "pp"
require "yaml"
yaml = <<YML
agencies:
? - ETA
- SOL
- VETS
- EMC
: advocate_email: example@example.com
? - some
- other
- ones
: advocate_email: example1@example1.com
YML
pp YAML.load(yaml)
# => {"agencies"=>
# {["ETA", "SOL", "VETS", "EMC"]=>{"advocate_email"=>"example@example.com"},
# ["some", "other", "ones"]=>{"advocate_email"=>"example1@example1.com"}}}
Я не знаю, правильно ли я понимаю, но я думаю, что вы хотите что-то вроде
emails:
ETA: email1@example.com
SOL: email2@example.com
VETS: email3@example.com