2009-09-18 3 views
0

В спецификации YAML он говорит ... это EOF Если я:Как получить реализация рубин YAML не читать дальше YAML EOF (...)

YAML.load_documents("--- abc\n--- 42\n...\nerror") { |d| puts d } 

я должен получить

abc 
42 

Но я получаю

abc 
42 
error 

Unfortenely там не так много документации о YAML разбирает. Должен ли я говорить анализы в честь EOF, или синтаксический анализатор не соответствует спецификациям?

ответ

2

Казалось бы, согласно спецификации YAML (http://yaml.org/spec/current.html), ... только указывает конец текущего документа, а не конец файла.

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

+0

Должен признаться, я не читал спецификации. Я читал только википедию. Я скорректировал статью в Википедии, поэтому никто другой не понимает этого. – johannes

Смежные вопросы