Module: Gem::SafeYAML

Defined in:
lib/rubygems/safe_yaml.rb

Overview

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

Constant Summary collapse

PERMITTED_CLASSES =
%w[
  Symbol
  Time
  Date
  Gem::Dependency
  Gem::Platform
  Gem::Requirement
  Gem::Specification
  Gem::Version
  Gem::Version::Requirement
].freeze
PERMITTED_SYMBOLS =
%w[
  development
  runtime
].freeze

Class Method Summary collapse

Class Method Details

.aliases_enabled=(value) ⇒ Object

:nodoc:



29
30
31
# File 'lib/rubygems/safe_yaml.rb', line 29

def self.aliases_enabled=(value) # :nodoc:
  @aliases_enabled = !!value
end

.aliases_enabled?Boolean

:nodoc:

Returns:

  • (Boolean)


33
34
35
# File 'lib/rubygems/safe_yaml.rb', line 33

def self.aliases_enabled? # :nodoc:
  @aliases_enabled
end

.load(input) ⇒ Object



41
42
43
# File 'lib/rubygems/safe_yaml.rb', line 41

def self.load(input)
  ::Psych.safe_load(input, permitted_classes: [::Symbol])
end

.safe_load(input) ⇒ Object



37
38
39
# File 'lib/rubygems/safe_yaml.rb', line 37

def self.safe_load(input)
  ::Psych.safe_load(input, permitted_classes: PERMITTED_CLASSES, permitted_symbols: PERMITTED_SYMBOLS, aliases: @aliases_enabled)
end