Issue #9300 has been updated by charliesome (Charlie Somerville). It seems legit to me: >> YAML.load(YAML.dump({"key"=>%{<%= ENV["HOME"] %>}})) => {"key"=>"<%= ENV[\"HOME\"] %>"} Psych is correctly round-tripping the data, so I don't think there's any incorrect escaping happening here. ---------------------------------------- Bug #9300: YAML Regression Concerning Escaping of Strings https://bugs.ruby-lang.org/issues/9300#change-43905 Author: schneems (Richard Schneeman) Status: Open Priority: Normal Assignee: tenderlovemaking (Aaron Patterson) Category: Target version: current: 2.2.0 ruby -v: 2.1.0 Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN =begin When you run this code against Ruby 2.1.0 and previous versions you get different results: require 'YAML' yaml1 = {"key" => %Q{<%= ENV["PATH"] %>} }.to_yaml puts yaml1 Ruby 2.1.0 incorrectly escapes the quote --- key: "<%= ENV[\"PATH\"] %>" While previous versions do not. Here is my original document for debugging this issue: https://gist.github.com/schneems/8127922 =end -- http://bugs.ruby-lang.org/