class Psych::Visitors::Visitor
Constants
- DISPATCH
Private Class Methods
dispatch_cache()
click to toggle source
@api private
# File ext/psych/lib/psych/visitors/visitor.rb, line 12 def self.dispatch_cache Hash.new do |hash, klass| hash[klass] = :"visit_#{klass.name.gsub('::', '_')}" end.compare_by_identity end
Public Instance Methods
accept(target)
click to toggle source
# File ext/psych/lib/psych/visitors/visitor.rb, line 5 def accept target visit target end
Private Instance Methods
dispatch()
click to toggle source
# File ext/psych/lib/psych/visitors/visitor.rb, line 19 def dispatch @dispatch_cache ||= (Ractor.current[:Psych_Visitors_Visitor] ||= Visitor.dispatch_cache) end
visit(target)
click to toggle source
# File ext/psych/lib/psych/visitors/visitor.rb, line 29 def visit target send dispatch[target.class], target end