From 0b396d588060707e227f21b80e964180674c8a50 Mon Sep 17 00:00:00 2001 From: hsbt Date: Fri, 14 Jul 2017 06:15:58 +0000 Subject: Merge psych-3.0.0.beta3 from ruby/psych. * Rely on encoding tags to determine if string should be dumped as binary. https://github.com/ruby/psych/commit/8949a47b8cee31e03e21608406ba116adcf74054 * Specify "frozen_string_literal: true". * Support to binary release for mingw32 platform. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/psych/lib/psych/class_loader.rb | 2 +- ext/psych/lib/psych/coder.rb | 2 +- ext/psych/lib/psych/core_ext.rb | 2 +- ext/psych/lib/psych/exception.rb | 2 +- ext/psych/lib/psych/handler.rb | 2 +- ext/psych/lib/psych/handlers/document_stream.rb | 2 +- ext/psych/lib/psych/handlers/recorder.rb | 2 +- ext/psych/lib/psych/json/ruby_events.rb | 2 +- ext/psych/lib/psych/json/stream.rb | 2 +- ext/psych/lib/psych/json/tree_builder.rb | 2 +- ext/psych/lib/psych/json/yaml_events.rb | 2 +- ext/psych/lib/psych/nodes.rb | 2 +- ext/psych/lib/psych/nodes/alias.rb | 2 +- ext/psych/lib/psych/nodes/document.rb | 2 +- ext/psych/lib/psych/nodes/mapping.rb | 2 +- ext/psych/lib/psych/nodes/node.rb | 2 +- ext/psych/lib/psych/nodes/scalar.rb | 2 +- ext/psych/lib/psych/nodes/sequence.rb | 2 +- ext/psych/lib/psych/nodes/stream.rb | 2 +- ext/psych/lib/psych/omap.rb | 2 +- ext/psych/lib/psych/parser.rb | 2 +- ext/psych/lib/psych/scalar_scanner.rb | 2 +- ext/psych/lib/psych/set.rb | 2 +- ext/psych/lib/psych/stream.rb | 2 +- ext/psych/lib/psych/streaming.rb | 2 +- ext/psych/lib/psych/syntax_error.rb | 2 +- ext/psych/lib/psych/tree_builder.rb | 2 +- ext/psych/lib/psych/versions.rb | 2 +- ext/psych/lib/psych/visitors.rb | 2 +- ext/psych/lib/psych/visitors/depth_first.rb | 2 +- ext/psych/lib/psych/visitors/emitter.rb | 2 +- ext/psych/lib/psych/visitors/json_tree.rb | 2 +- ext/psych/lib/psych/visitors/to_ruby.rb | 2 +- ext/psych/lib/psych/visitors/visitor.rb | 2 +- ext/psych/lib/psych/visitors/yaml_tree.rb | 22 ++++++++++------------ ext/psych/lib/psych/y.rb | 2 +- 36 files changed, 45 insertions(+), 47 deletions(-) (limited to 'ext/psych/lib/psych') diff --git a/ext/psych/lib/psych/class_loader.rb b/ext/psych/lib/psych/class_loader.rb index ba756f7ea7..cfca86845a 100644 --- a/ext/psych/lib/psych/class_loader.rb +++ b/ext/psych/lib/psych/class_loader.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true require 'psych/omap' require 'psych/set' diff --git a/ext/psych/lib/psych/coder.rb b/ext/psych/lib/psych/coder.rb index 26005f57b4..96a9c3fbad 100644 --- a/ext/psych/lib/psych/coder.rb +++ b/ext/psych/lib/psych/coder.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych ### # If an object defines +encode_with+, then an instance of Psych::Coder will diff --git a/ext/psych/lib/psych/core_ext.rb b/ext/psych/lib/psych/core_ext.rb index 1232abf3d9..81055cc501 100644 --- a/ext/psych/lib/psych/core_ext.rb +++ b/ext/psych/lib/psych/core_ext.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true class Object def self.yaml_tag url Psych.add_tag(url, self) diff --git a/ext/psych/lib/psych/exception.rb b/ext/psych/lib/psych/exception.rb index 83c3d7fa82..fac0c42b9f 100644 --- a/ext/psych/lib/psych/exception.rb +++ b/ext/psych/lib/psych/exception.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych class Exception < RuntimeError end diff --git a/ext/psych/lib/psych/handler.rb b/ext/psych/lib/psych/handler.rb index 1ab5f73e95..1074c18f9e 100644 --- a/ext/psych/lib/psych/handler.rb +++ b/ext/psych/lib/psych/handler.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych ### # Psych::Handler is an abstract base class that defines the events used diff --git a/ext/psych/lib/psych/handlers/document_stream.rb b/ext/psych/lib/psych/handlers/document_stream.rb index c43b39ebc5..67da794093 100644 --- a/ext/psych/lib/psych/handlers/document_stream.rb +++ b/ext/psych/lib/psych/handlers/document_stream.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true require 'psych/tree_builder' module Psych diff --git a/ext/psych/lib/psych/handlers/recorder.rb b/ext/psych/lib/psych/handlers/recorder.rb index 341b81dec4..a8fc7b1144 100644 --- a/ext/psych/lib/psych/handlers/recorder.rb +++ b/ext/psych/lib/psych/handlers/recorder.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true require 'psych/handler' module Psych diff --git a/ext/psych/lib/psych/json/ruby_events.rb b/ext/psych/lib/psych/json/ruby_events.rb index 478eb667c7..17b7ddc386 100644 --- a/ext/psych/lib/psych/json/ruby_events.rb +++ b/ext/psych/lib/psych/json/ruby_events.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych module JSON module RubyEvents # :nodoc: diff --git a/ext/psych/lib/psych/json/stream.rb b/ext/psych/lib/psych/json/stream.rb index 83b7e13655..2ebd3d7a66 100644 --- a/ext/psych/lib/psych/json/stream.rb +++ b/ext/psych/lib/psych/json/stream.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true require 'psych/json/ruby_events' require 'psych/json/yaml_events' diff --git a/ext/psych/lib/psych/json/tree_builder.rb b/ext/psych/lib/psych/json/tree_builder.rb index 2f94b8c252..5c2ee8ca25 100644 --- a/ext/psych/lib/psych/json/tree_builder.rb +++ b/ext/psych/lib/psych/json/tree_builder.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true require 'psych/json/yaml_events' module Psych diff --git a/ext/psych/lib/psych/json/yaml_events.rb b/ext/psych/lib/psych/json/yaml_events.rb index 07f64737c5..eb973f5361 100644 --- a/ext/psych/lib/psych/json/yaml_events.rb +++ b/ext/psych/lib/psych/json/yaml_events.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych module JSON module YAMLEvents # :nodoc: diff --git a/ext/psych/lib/psych/nodes.rb b/ext/psych/lib/psych/nodes.rb index 01573b509b..5842c2e3e5 100644 --- a/ext/psych/lib/psych/nodes.rb +++ b/ext/psych/lib/psych/nodes.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true require 'psych/nodes/node' require 'psych/nodes/stream' require 'psych/nodes/document' diff --git a/ext/psych/lib/psych/nodes/alias.rb b/ext/psych/lib/psych/nodes/alias.rb index 716a00d62f..8131a4befb 100644 --- a/ext/psych/lib/psych/nodes/alias.rb +++ b/ext/psych/lib/psych/nodes/alias.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych module Nodes ### diff --git a/ext/psych/lib/psych/nodes/document.rb b/ext/psych/lib/psych/nodes/document.rb index 7234fef1d8..3cd418eaf3 100644 --- a/ext/psych/lib/psych/nodes/document.rb +++ b/ext/psych/lib/psych/nodes/document.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych module Nodes ### diff --git a/ext/psych/lib/psych/nodes/mapping.rb b/ext/psych/lib/psych/nodes/mapping.rb index 4c11df8cd6..b921ddc862 100644 --- a/ext/psych/lib/psych/nodes/mapping.rb +++ b/ext/psych/lib/psych/nodes/mapping.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych module Nodes ### diff --git a/ext/psych/lib/psych/nodes/node.rb b/ext/psych/lib/psych/nodes/node.rb index e3621dc451..1c7672164d 100644 --- a/ext/psych/lib/psych/nodes/node.rb +++ b/ext/psych/lib/psych/nodes/node.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true require 'stringio' require 'psych/class_loader' require 'psych/scalar_scanner' diff --git a/ext/psych/lib/psych/nodes/scalar.rb b/ext/psych/lib/psych/nodes/scalar.rb index ee5570518e..b448858831 100644 --- a/ext/psych/lib/psych/nodes/scalar.rb +++ b/ext/psych/lib/psych/nodes/scalar.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych module Nodes ### diff --git a/ext/psych/lib/psych/nodes/sequence.rb b/ext/psych/lib/psych/nodes/sequence.rb index 1096469567..77c2c602b9 100644 --- a/ext/psych/lib/psych/nodes/sequence.rb +++ b/ext/psych/lib/psych/nodes/sequence.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych module Nodes ### diff --git a/ext/psych/lib/psych/nodes/stream.rb b/ext/psych/lib/psych/nodes/stream.rb index 559b0846e7..2474fe62c4 100644 --- a/ext/psych/lib/psych/nodes/stream.rb +++ b/ext/psych/lib/psych/nodes/stream.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych module Nodes ### diff --git a/ext/psych/lib/psych/omap.rb b/ext/psych/lib/psych/omap.rb index 233b945c4a..29cde0be50 100644 --- a/ext/psych/lib/psych/omap.rb +++ b/ext/psych/lib/psych/omap.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych class Omap < ::Hash end diff --git a/ext/psych/lib/psych/parser.rb b/ext/psych/lib/psych/parser.rb index 242512f89f..39bc8289be 100644 --- a/ext/psych/lib/psych/parser.rb +++ b/ext/psych/lib/psych/parser.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych ### # YAML event parser class. This class parses a YAML document and calls diff --git a/ext/psych/lib/psych/scalar_scanner.rb b/ext/psych/lib/psych/scalar_scanner.rb index 67c0cc3d4e..29c156c212 100644 --- a/ext/psych/lib/psych/scalar_scanner.rb +++ b/ext/psych/lib/psych/scalar_scanner.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true require 'strscan' module Psych diff --git a/ext/psych/lib/psych/set.rb b/ext/psych/lib/psych/set.rb index f35be15e6f..760d217098 100644 --- a/ext/psych/lib/psych/set.rb +++ b/ext/psych/lib/psych/set.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych class Set < ::Hash end diff --git a/ext/psych/lib/psych/stream.rb b/ext/psych/lib/psych/stream.rb index 2f63d7d552..24e45afc3b 100644 --- a/ext/psych/lib/psych/stream.rb +++ b/ext/psych/lib/psych/stream.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych ### # Psych::Stream is a streaming YAML emitter. It will not buffer your YAML, diff --git a/ext/psych/lib/psych/streaming.rb b/ext/psych/lib/psych/streaming.rb index 260f8a8008..eb19792ad0 100644 --- a/ext/psych/lib/psych/streaming.rb +++ b/ext/psych/lib/psych/streaming.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych module Streaming module ClassMethods diff --git a/ext/psych/lib/psych/syntax_error.rb b/ext/psych/lib/psych/syntax_error.rb index db293b9fb2..1598e6ff36 100644 --- a/ext/psych/lib/psych/syntax_error.rb +++ b/ext/psych/lib/psych/syntax_error.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true require 'psych/exception' module Psych diff --git a/ext/psych/lib/psych/tree_builder.rb b/ext/psych/lib/psych/tree_builder.rb index d359c933af..b10fd5c5cd 100644 --- a/ext/psych/lib/psych/tree_builder.rb +++ b/ext/psych/lib/psych/tree_builder.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true require 'psych/handler' module Psych diff --git a/ext/psych/lib/psych/versions.rb b/ext/psych/lib/psych/versions.rb index 3d61c8b015..49f8820246 100644 --- a/ext/psych/lib/psych/versions.rb +++ b/ext/psych/lib/psych/versions.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych # The version is Psych you're using VERSION = '3.0.0.beta2' diff --git a/ext/psych/lib/psych/visitors.rb b/ext/psych/lib/psych/visitors.rb index 5dee4ebd7a..e2b084daee 100644 --- a/ext/psych/lib/psych/visitors.rb +++ b/ext/psych/lib/psych/visitors.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true require 'psych/visitors/visitor' require 'psych/visitors/to_ruby' require 'psych/visitors/emitter' diff --git a/ext/psych/lib/psych/visitors/depth_first.rb b/ext/psych/lib/psych/visitors/depth_first.rb index 2d74a212d6..b4ff9e40e7 100644 --- a/ext/psych/lib/psych/visitors/depth_first.rb +++ b/ext/psych/lib/psych/visitors/depth_first.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych module Visitors class DepthFirst < Psych::Visitors::Visitor diff --git a/ext/psych/lib/psych/visitors/emitter.rb b/ext/psych/lib/psych/visitors/emitter.rb index f2ff9fdb28..e3b92b7d03 100644 --- a/ext/psych/lib/psych/visitors/emitter.rb +++ b/ext/psych/lib/psych/visitors/emitter.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych module Visitors class Emitter < Psych::Visitors::Visitor diff --git a/ext/psych/lib/psych/visitors/json_tree.rb b/ext/psych/lib/psych/visitors/json_tree.rb index f2f0215cd2..9912cb1362 100644 --- a/ext/psych/lib/psych/visitors/json_tree.rb +++ b/ext/psych/lib/psych/visitors/json_tree.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true require 'psych/json/ruby_events' module Psych diff --git a/ext/psych/lib/psych/visitors/to_ruby.rb b/ext/psych/lib/psych/visitors/to_ruby.rb index d1318b3ca0..74a52df866 100644 --- a/ext/psych/lib/psych/visitors/to_ruby.rb +++ b/ext/psych/lib/psych/visitors/to_ruby.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true require 'psych/scalar_scanner' require 'psych/class_loader' require 'psych/exception' diff --git a/ext/psych/lib/psych/visitors/visitor.rb b/ext/psych/lib/psych/visitors/visitor.rb index d97bf550f6..3f4ba64e57 100644 --- a/ext/psych/lib/psych/visitors/visitor.rb +++ b/ext/psych/lib/psych/visitors/visitor.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Psych module Visitors class Visitor diff --git a/ext/psych/lib/psych/visitors/yaml_tree.rb b/ext/psych/lib/psych/visitors/yaml_tree.rb index e197a30611..cfed8f1814 100644 --- a/ext/psych/lib/psych/visitors/yaml_tree.rb +++ b/ext/psych/lib/psych/visitors/yaml_tree.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true require 'psych/tree_builder' require 'psych/scalar_scanner' require 'psych/class_loader' @@ -321,7 +321,7 @@ module Psych end @emitter.scalar o, nil, tag, plain, quote, style else - maptag = '!ruby/string' + maptag = '!ruby/string'.dup maptag << ":#{o.class}" unless o.class == ::String register o, @emitter.start_mapping(nil, maptag, false, Nodes::Mapping::BLOCK) @@ -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 diff --git a/ext/psych/lib/psych/y.rb b/ext/psych/lib/psych/y.rb index 82e05a783c..e857953c04 100644 --- a/ext/psych/lib/psych/y.rb +++ b/ext/psych/lib/psych/y.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module Kernel ### # An alias for Psych.dump_stream meant to be used with IRB. -- cgit v1.2.3