diff options
author | SHIBATA Hiroshi <hsbt@ruby-lang.org> | 2017-06-30 07:58:15 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-30 07:58:15 +0900 |
commit | 4552cfc32939c57bfaacce9aea0416e3a1be908f (patch) | |
tree | 79e9c583aa8690a03a9bef8a50dcecc0684c91d2 /lib/psych/visitors/yaml_tree.rb | |
parent | 56d545e278577b3cfb3f71905a54f85cd2fba16c (diff) | |
parent | 0ca2d343735444d83a0dd733b52b2893c5084546 (diff) | |
download | psych-4552cfc32939c57bfaacce9aea0416e3a1be908f.zip |
Merge branch 'master' into frozen
Diffstat (limited to 'lib/psych/visitors/yaml_tree.rb')
-rw-r--r-- | lib/psych/visitors/yaml_tree.rb | 18 |
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 |