diff --git a/ChangeLog b/ChangeLog index 02bd813e78..33cba2f0c5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Tue Jan 18 02:46:55 2011 Aaron Patterson + + * ext/psych/lib/psych/visitors/json_tree.rb (visit_String): JSON + strings should be dumped with double quotes. [ruby-core:34186] + + * test/psych/test_json_tree.rb: test for double quotes + Mon Jan 17 23:36:33 2011 Tanaka Akira * array.c (rb_ary_times): less MEMCPY calls. diff --git a/ext/psych/lib/psych/visitors/json_tree.rb b/ext/psych/lib/psych/visitors/json_tree.rb index 3502cdb63c..f2dbfb33d7 100644 --- a/ext/psych/lib/psych/visitors/json_tree.rb +++ b/ext/psych/lib/psych/visitors/json_tree.rb @@ -6,7 +6,7 @@ module Psych end def visit_String o - @emitter.scalar o.to_s, nil, nil, false, true, Nodes::Scalar::ANY + @emitter.scalar o.to_s, nil, nil, false, true, Nodes::Scalar::DOUBLE_QUOTED end alias :visit_Symbol :visit_String end diff --git a/test/psych/test_json_tree.rb b/test/psych/test_json_tree.rb index 84bd36ce57..96e17be961 100644 --- a/test/psych/test_json_tree.rb +++ b/test/psych/test_json_tree.rb @@ -3,11 +3,11 @@ require_relative 'helper' module Psych class TestJSONTree < TestCase def test_string - assert_match(/(['"])foo\1/, Psych.to_json("foo")) + assert_match(/"foo"/, Psych.to_json("foo")) end def test_symbol - assert_match(/(['"])foo\1/, Psych.to_json(:foo)) + assert_match(/"foo"/, Psych.to_json(:foo)) end def test_nil @@ -36,8 +36,8 @@ module Psych json = Psych.to_json(list) assert_match(/]$/, json) assert_match(/^\[/, json) - assert_match(/['"]one['"]/, json) - assert_match(/['"]two['"]/, json) + assert_match(/"one"/, json) + assert_match(/"two"/, json) end end end