Ruby 2.0、Psych を使用する Yaml は、ダブル クォーテーションのエスケープに問題があるようです。誰でもこれを解決するためのアイデアを持っていますか?
data_ =<<END_
description: "Acme acquires ILM: Lucas says \"Inevitable!\""
END_
ap YAML.load(data_)
生産する
/Users/x/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/psych.rb:205:in `parse': (<unknown>): did not find expected key while parsing a block mapping at line 1 column 1 (Psych::SyntaxError)
一重引用符でエントリをエスケープすることはできますが、一重引用符が含まれている場合、それらをエスケープしてもエラーになります。
description: 'Acme acquires ILM: Lucas says "It\'s Inevitable!"'
理想的な世界では、エントリには適切な Unicode の誤植引用符が含まれますが、これらを制御することはできません (ただし、YAML で処理する前にそれらを置き換えることはできます)...
YAML でこれを適切に解析するアイデアはありますか?
更新:私の質問に答えます。一重引用符を複製することでエスケープできることがわかったので、次のようにします。
description: 'Acme acquires ILM: Lucas says "It''s Inevitable!"'
YAML.dump(the-desired-string) を使用してこれを発見しました