From ef74fc01e2a4cab9f7e60b9d9e4fd28d4631a7e6 Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Mon, 8 Jun 2020 17:52:41 +0200 Subject: Fix anchor lookup with symbolized names --- lib/psych/visitors/to_ruby.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/psych/visitors/to_ruby.rb b/lib/psych/visitors/to_ruby.rb index a922f90..ec80701 100644 --- a/lib/psych/visitors/to_ruby.rb +++ b/lib/psych/visitors/to_ruby.rb @@ -337,18 +337,12 @@ module Psych list end - SHOVEL = '<<' def revive_hash hash, o o.children.each_slice(2) { |k,v| key = accept(k) - if @symbolize_names - key = key.to_sym - elsif !@freeze - key = deduplicate(key) - end val = accept(v) - if key == SHOVEL && k.tag != "tag:yaml.org,2002:str" + if key == '<<' && k.tag != "tag:yaml.org,2002:str" case v when Nodes::Alias, Nodes::Mapping begin @@ -370,6 +364,12 @@ module Psych hash[key] = val end else + if @symbolize_names + key = key.to_sym + elsif !@freeze + key = deduplicate(key) + end + hash[key] = val end -- cgit v1.2.3