module Bootsnap::CompileCache::YAML::Psych4::SafeLoad

Public Instance Methods

input_to_output(data, kwargs) click to toggle source
# File lib/bootsnap/compile_cache/yaml.rb, line 216
def input_to_output(data, kwargs)
  ::YAML.load(data, **(kwargs || {}))
end
input_to_storage(contents, _) click to toggle source
# File lib/bootsnap/compile_cache/yaml.rb, line 184
def input_to_storage(contents, _)
  obj = begin
    CompileCache::YAML.strict_load(contents)
  rescue Psych::DisallowedClass, Psych::BadAlias, Uncompilable
    return UNCOMPILABLE
  end

  packer = CompileCache::YAML.msgpack_factory.packer
  packer.pack(true) # safe loaded
  begin
    packer.pack(obj)
  rescue NoMethodError, RangeError
    return UNCOMPILABLE
  end
  packer.to_s
end
storage_to_output(data, kwargs) click to toggle source
# File lib/bootsnap/compile_cache/yaml.rb, line 201
def storage_to_output(data, kwargs)
  if kwargs&.key?(:symbolize_names)
    kwargs[:symbolize_keys] = kwargs.delete(:symbolize_names)
  end

  unpacker = CompileCache::YAML.msgpack_factory.unpacker(kwargs)
  unpacker.feed(data)
  safe_loaded = unpacker.unpack
  if safe_loaded
    unpacker.unpack
  else
    UNCOMPILABLE
  end
end