ÿØÿà JFIF H H ÿÛ C GIF89;
| System: Linux host57.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64 Current Path : /opt/alt/ruby30/share/ruby/psych/visitors/ |
| Current File : //opt/alt/ruby30/share/ruby/psych/visitors/visitor.rb |
# frozen_string_literal: true
module Psych
module Visitors
class Visitor
def accept target
visit target
end
private
# @api private
def self.dispatch_cache
Hash.new do |hash, klass|
hash[klass] = :"visit_#{klass.name.gsub('::', '_')}"
end.compare_by_identity
end
if defined?(Ractor)
def dispatch
@dispatch_cache ||= (Ractor.current[:Psych_Visitors_Visitor] ||= Visitor.dispatch_cache)
end
else
DISPATCH = dispatch_cache
def dispatch
DISPATCH
end
end
def visit target
send dispatch[target.class], target
end
end
end
end