Module: YPS::Visitor

Defined in:
lib/yps/visitor.rb

Defined Under Namespace

Modules: Common Classes: NoAliasRuby, ToRuby

Class Method Summary collapse

Class Method Details

.create(permitted_classes, permitted_symbols, unwrapped_classes, aliases, symbolize_names, freeze, strict_integer, value_class) ⇒ Object

rubocop:disable Metrics/ParameterLists



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/yps/visitor.rb', line 49

def self.create( # rubocop:disable Metrics/ParameterLists
  permitted_classes, permitted_symbols, unwrapped_classes,
  aliases, symbolize_names, freeze, strict_integer, value_class
)
  class_loader = Psych::ClassLoader::Restricted.new(
    permitted_classes.map(&:to_s), permitted_symbols.map(&:to_s)
  )
  scanner =
    if RUBY_VERSION >= '3.2.0'
      Psych::ScalarScanner.new(class_loader, strict_integer:)
    else
      Psych::ScalarScanner.new(class_loader)
    end
  (aliases && ToRuby || NoAliasRuby)
    .new(scanner, class_loader, unwrapped_classes, value_class, symbolize_names:, freeze:)
end