Constants
No documentation available
Class Methods
ext/psych/lib/psych/visitors/yaml_tree.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/ext/psych/lib/psych/visitors/yaml_tree.rb, line 552
def initialize emitter, ss, options
super
@permitted_classes = DEFAULT_PERMITTED_CLASSES.dup
Array(options[:permitted_classes]).each do |klass|
@permitted_classes[klass] = true
end
@permitted_symbols = {}.compare_by_identity
Array(options[:permitted_symbols]).each do |symbol|
@permitted_symbols[symbol] = true
end
@aliases = options.fetch(:aliases, false)
end
No documentation available
Instance Methods
ext/psych/lib/psych/visitors/yaml_tree.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/ext/psych/lib/psych/visitors/yaml_tree.rb, line 565
def accept target
if !@aliases && @st.key?(target)
raise BadAlias, "Tried to dump an aliased object"
end
unless Symbol === target || @permitted_classes[target.class]
raise DisallowedClass.new('dump', target.class.name || target.class.inspect)
end
super
end
No documentation available
ext/psych/lib/psych/visitors/yaml_tree.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/ext/psych/lib/psych/visitors/yaml_tree.rb, line 577
def visit_Symbol sym
unless @permitted_classes[Symbol] || @permitted_symbols[sym]
raise DisallowedClass.new('dump', "Symbol(#{sym.inspect})")
end
super
end
No documentation available