module Gem::SafeYAML
This module is used for safely loading YAML specs from a gem. The safe_load method defined on this module is specifically designed for loading Gem specifications. For loading other YAML safely, please see Psych.safe_load
Constants
- PERMITTED_CLASSES
- PERMITTED_SYMBOLS
Public Class Methods
Source
# File lib/rubygems/safe_yaml.rb, line 37 def self.safe_load(input) # Psych rejects legacy metadata bytes, so preserve them with the internal parser. if Gem.use_psych? && valid_encoding?(input) ::Psych.safe_load(input, permitted_classes: PERMITTED_CLASSES, permitted_symbols: PERMITTED_SYMBOLS, aliases: @aliases_enabled) else Gem::YAMLSerializer.load( input, permitted_classes: PERMITTED_CLASSES, permitted_symbols: PERMITTED_SYMBOLS, aliases: aliases_enabled? ) end end
Also aliased as: load
Private Class Methods
Source
# File lib/rubygems/safe_yaml.rb, line 56 def self.valid_encoding?(input) return true unless input.is_a?(String) input.dup.force_encoding(Encoding::UTF_8).valid_encoding? end