lib/safe_yaml/safe_to_ruby_visitor.rb
module SafeYAML class SafeToRubyVisitor < Psych::Visitors::ToRuby INITIALIZE_ARITY = superclass.instance_method(:initialize).arity def initialize(resolver) case INITIALIZE_ARITY when 2 # https://github.com/tenderlove/psych/blob/v2.0.0/lib/psych/visitors/to_ruby.rb#L14-L28 loader = Psych::ClassLoader.new scanner = Psych::ScalarScanner.new(loader) super(scanner, loader) else super() end @resolver = resolver end def accept(node) if node.tag SafeYAML.tag_safety_check!(node.tag, @resolver.options) return super end @resolver.resolve_node(node) end end end