[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]