summaryrefslogtreecommitdiff
path: root/lib/psych/visitors/yaml_tree.rb
diff options
context:
space:
mode:
authorSHIBATA Hiroshi <hsbt@ruby-lang.org>2017-06-30 07:58:15 +0900
committerGitHub <noreply@github.com>2017-06-30 07:58:15 +0900
commit4552cfc32939c57bfaacce9aea0416e3a1be908f (patch)
tree79e9c583aa8690a03a9bef8a50dcecc0684c91d2 /lib/psych/visitors/yaml_tree.rb
parent56d545e278577b3cfb3f71905a54f85cd2fba16c (diff)
parent0ca2d343735444d83a0dd733b52b2893c5084546 (diff)
downloadpsych-4552cfc32939c57bfaacce9aea0416e3a1be908f.zip
Merge branch 'master' into frozen
Diffstat (limited to 'lib/psych/visitors/yaml_tree.rb')
-rw-r--r--lib/psych/visitors/yaml_tree.rb18
1 files changed, 8 insertions, 10 deletions
diff --git a/lib/psych/visitors/yaml_tree.rb b/lib/psych/visitors/yaml_tree.rb
index 671bf5d..cfed8f1 100644
--- a/lib/psych/visitors/yaml_tree.rb
+++ b/lib/psych/visitors/yaml_tree.rb
@@ -378,14 +378,18 @@ module Psych
def visit_Array o
if o.class == ::Array
- register o, @emitter.start_sequence(nil, nil, true, Nodes::Sequence::BLOCK)
- o.each { |c| accept c }
- @emitter.end_sequence
+ visit_Enumerator o
else
visit_array_subclass o
end
end
+ def visit_Enumerator o
+ register o, @emitter.start_sequence(nil, nil, true, Nodes::Sequence::BLOCK)
+ o.each { |c| accept c }
+ @emitter.end_sequence
+ end
+
def visit_NilClass o
@emitter.scalar('', nil, 'tag:yaml.org,2002:null', true, false, Nodes::Scalar::ANY)
end
@@ -411,15 +415,9 @@ module Psych
end
private
- # FIXME: Remove the index and count checks in Psych 3.0
- NULL = "\x00"
- BINARY_RANGE = "\x00-\x7F"
- WS_RANGE = "^ -~\t\r\n"
def binary? string
- (string.encoding == Encoding::ASCII_8BIT && !string.ascii_only?) ||
- string.index(NULL) ||
- string.count(BINARY_RANGE, WS_RANGE).fdiv(string.length) > 0.3
+ string.encoding == Encoding::ASCII_8BIT && !string.ascii_only?
end
def visit_array_subclass o