ruby-changes:15483
From: tenderlove <ko1@a...>
Date: Sun, 18 Apr 2010 05:53:26 +0900 (JST)
Subject: [ruby-changes:15483] Ruby:r27384 (trunk): * ext/psych/lib/psych/visitors/yaml_tree.rb: defaulting binary string
tenderlove 2010-04-18 05:52:46 +0900 (Sun, 18 Apr 2010) New Revision: 27384 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27384 Log: * ext/psych/lib/psych/visitors/yaml_tree.rb: defaulting binary string format to "literal" format. Modified files: trunk/ChangeLog trunk/ext/psych/lib/psych/visitors/yaml_tree.rb trunk/test/psych/visitors/test_yaml_tree.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 27383) +++ ChangeLog (revision 27384) @@ -1,3 +1,8 @@ +Sun Apr 18 05:50:58 2010 Aaron Patterson <aaron@t...> + + * ext/psych/lib/psych/visitors/yaml_tree.rb: defaulting binary string + format to "literal" format. + Sun Apr 18 02:13:59 2010 NARUSE, Yui <naruse@r...> * lib/irb/ruby-lex.rb (identify_identifier): add '_' to the regexp. Index: ext/psych/lib/psych/visitors/yaml_tree.rb =================================================================== --- ext/psych/lib/psych/visitors/yaml_tree.rb (revision 27383) +++ ext/psych/lib/psych/visitors/yaml_tree.rb (revision 27384) @@ -171,10 +171,13 @@ def visit_String o plain = false quote = false + style = Nodes::Scalar::ANY if o.index("\x00") || o.count("^ -~\t\r\n").fdiv(o.length) > 0.3 str = [o].pack('m').chomp - tag = '!binary' + tag = '!binary' # FIXME: change to below when syck is removed + #tag = 'tag:yaml.org,2002:binary' + style = Nodes::Scalar::LITERAL else str = o tag = nil @@ -184,7 +187,7 @@ ivars = find_ivars o - scalar = create_scalar str, nil, tag, plain, quote + scalar = create_scalar str, nil, tag, plain, quote, style if ivars.empty? append scalar Index: test/psych/visitors/test_yaml_tree.rb =================================================================== --- test/psych/visitors/test_yaml_tree.rb (revision 27383) +++ test/psych/visitors/test_yaml_tree.rb (revision 27384) @@ -8,6 +8,13 @@ @v = Visitors::YAMLTree.new end + def test_binary_formatting + gif = "GIF89a\f\x00\f\x00\x84\x00\x00\xFF\xFF\xF7\xF5\xF5\xEE\xE9\xE9\xE5fff\x00\x00\x00\xE7\xE7\xE7^^^\xF3\xF3\xED\x8E\x8E\x8E\xE0\xE0\xE0\x9F\x9F\x9F\x93\x93\x93\xA7\xA7\xA7\x9E\x9E\x9Eiiiccc\xA3\xA3\xA3\x84\x84\x84\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9!\xFE\x0EMade with GIMP\x00,\x00\x00\x00\x00\f\x00\f\x00\x00\x05, \x8E\x810\x9E\xE3@\x14\xE8i\x10\xC4\xD1\x8A\b\x1C\xCF\x80M$z\xEF\xFF0\x85p\xB8\xB01f\r\e\xCE\x01\xC3\x01\x1E\x10' \x82\n\x01\x00;" + @v << gif + scalar = @v.tree.children.first.children.first + assert_equal Psych::Nodes::Scalar::LITERAL, scalar.style + end + def test_object_has_no_class yaml = Psych.dump(Object.new) assert(Psych.dump(Object.new) !~ /Object/, yaml) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/