End of Life Ruby 3.1 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →
instance method
Psych::Visitors::ToRuby#revive_hash
revive_hash(hash, o, tagged= false)
ext/psych/lib/psych/visitors/to_ruby.rb
View on GitHub ↗
# File tmp/rubies/ruby-3.1.3/ext/psych/lib/psych/visitors/to_ruby.rb, line 342
def revive_hash hash, o, tagged= false
o.children.each_slice(2) { |k,v|
key = accept(k)
val = accept(v)
if key == '<<' && k.tag != "tag:yaml.org,2002:str"
case v
when Nodes::Alias, Nodes::Mapping
begin
hash.merge! val
rescue TypeError
hash[key] = val
end
when Nodes::Sequence
begin
h = {}
val.reverse_each do |value|
h.merge! value
end
hash.merge! h
rescue TypeError
hash[key] = val
end
else
hash[key] = val
end
else
if !tagged && @symbolize_names && key.is_a?(String)
key = key.to_sym
elsif !@freeze
key = deduplicate(key)
end
hash[key] = val
end
}
hash
end
No documentation available
See also
#revive
#visit_Psych_Nodes_Alias
#resolve_class
#visit_Psych_Nodes_Document
also in
4.1 · 4.0 · 3.4 · 3.3 · 3.2 · 3.0