summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Kunysch <kunysch@me.com>2013-01-06 22:01:31 +0100
committerPaul Kunysch <kunysch@me.com>2013-01-06 22:12:46 +0100
commitef4f0418a30902e1fa5237a0561927ea3d479b55 (patch)
treea54b881f12790ca4f10a043b852cf3e1ab3c51e6
parentbdd8e9d498a7e2d79059ac7d94ba0f34b673f164 (diff)
downloadpsych-ef4f0418a30902e1fa5237a0561927ea3d479b55.tar.gz
Changed Psych::Visitors::YAMLTree.binary?(string).
* A human-readable representation can be used for ascii_only 8bit-encoded strings. * String subclasses are binary, even if they are character-encoded.
-rw-r--r--lib/psych/visitors/yaml_tree.rb5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/psych/visitors/yaml_tree.rb b/lib/psych/visitors/yaml_tree.rb
index 5efb654..ce40a17 100644
--- a/lib/psych/visitors/yaml_tree.rb
+++ b/lib/psych/visitors/yaml_tree.rb
@@ -221,9 +221,10 @@ module Psych
end
def binary? string
- string.encoding == Encoding::ASCII_8BIT ||
+ (string.encoding == Encoding::ASCII_8BIT && !string.ascii_only?) ||
string.index("\x00") ||
- string.count("\x00-\x7F", "^ -~\t\r\n").fdiv(string.length) > 0.3
+ string.count("\x00-\x7F", "^ -~\t\r\n").fdiv(string.length) > 0.3 ||
+ string.class != String
end
private :binary?