Вы можете столкнуться с проблемой, упомянутой на этом связанном вопросе , а именно, что файл или поток YAML указывает объект, в который загрузчик YAML попытается преобразовать данные. Проблема в том, что вам понадобится связанный самоцвет, который знает о рассматриваемом объекте.
Мое решение было довольно тривиальным и предоставляется в качестве ответа на этот вопрос. Сделайте это:
yamltext = File.read("somefile","r")
yamltext.sub!(/^--- \!.*$/,'---')
hash = YAML.load(yamltext)
По сути, вы удаляете текст классификатора объекта из текста yaml. Затем вы анализируете / загружаете его.