From 9ed2cb26dee8ed801a75cf4b276f1ec354ade032 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Wed, 4 Aug 2021 09:27:04 -0700 Subject: [ruby/psych] Add quotes to the strings "y" and "n" 'y' and 'n' are kind of ambiguous. Syck treated y and n literals in YAML documents as strings. But this is not what the YAML 1.1 spec says. YAML 1.1 says they should be treated as booleans. When we're dumping documents, we know it's a string, so adding quotes will eliminate the "ambiguity" in the emitted document Fixes #443 https://github.com/ruby/psych/commit/6a1c30634e --- test/psych/test_string.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'test/psych') diff --git a/test/psych/test_string.rb b/test/psych/test_string.rb index 20ab79c05a..0dc34b3083 100644 --- a/test/psych/test_string.rb +++ b/test/psych/test_string.rb @@ -17,6 +17,19 @@ module Psych end end + # 'y' and 'n' are kind of ambiguous. Syck treated y and n literals in + # YAML documents as strings. But this is not what the YAML 1.1 spec says. + # YAML 1.1 says they should be treated as booleans. When we're dumping + # documents, we know it's a string, so adding quotes will eliminate the + # "ambiguity" in the emitted document + def test_y_is_quoted + assert_match(/"y"/, Psych.dump("y")) + end + + def test_n_is_quoted + assert_match(/"n"/, Psych.dump("n")) + end + def test_string_with_newline assert_equal "1\n2", Psych.load("--- ! '1\n\n 2'\n") end -- cgit v1.2.3