class Paquito::SafeYAML
Constants
- ALL_SYMBOLS
- BASE_PERMITTED_CLASSNAMES
Public Class Methods
new(permitted_classes: [], deprecated_classes: [], aliases: false)
click to toggle source
# File lib/paquito/safe_yaml.rb, line 9 def initialize(permitted_classes: [], deprecated_classes: [], aliases: false) permitted_classes += BASE_PERMITTED_CLASSNAMES @dumpable_classes = permitted_classes @loadable_classes = permitted_classes + deprecated_classes @aliases = aliases @dump_options = { permitted_classes: permitted_classes, permitted_symbols: ALL_SYMBOLS, aliases: true, line_width: -1, # Disable YAML line-wrapping because it causes extremely obscure issues. }.freeze end
Public Instance Methods
dump(obj)
click to toggle source
# File lib/paquito/safe_yaml.rb, line 36 def dump(obj) visitor = RestrictedYAMLTree.create(@dump_options) visitor << obj visitor.tree.yaml(nil, @dump_options) rescue Psych::Exception => psych_error raise PackError, psych_error.message end
load(serial)
click to toggle source
# File lib/paquito/safe_yaml.rb, line 23 def load(serial) Psych.safe_load( serial, permitted_classes: @loadable_classes, permitted_symbols: ALL_SYMBOLS, aliases: @aliases, ) rescue Psych::DisallowedClass => psych_error raise UnsupportedType, psych_error.message rescue Psych::Exception => psych_error raise UnpackError, psych_error.message end