Sha256: 9195e549a28a5def539568aa993546ee634a5452816360136a54f0b1ed1efc65

Contents?: true

Size: 1.04 KB

Versions: 20

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

module Gem
  ###
  # 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

  module SafeYAML
    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

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

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

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

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

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
rubygems-update-3.6.3 lib/rubygems/safe_yaml.rb
rubygems-update-3.6.2 lib/rubygems/safe_yaml.rb
rubygems-update-3.6.1 lib/rubygems/safe_yaml.rb
rubygems-update-3.6.0 lib/rubygems/safe_yaml.rb
rubygems-update-3.5.23 lib/rubygems/safe_yaml.rb
rubygems-update-3.5.22 lib/rubygems/safe_yaml.rb
rubygems-update-3.5.21 lib/rubygems/safe_yaml.rb
rubygems-update-3.5.20 lib/rubygems/safe_yaml.rb
rubygems-update-3.5.19 lib/rubygems/safe_yaml.rb
rubygems-update-3.5.18 lib/rubygems/safe_yaml.rb
rubygems-update-3.5.17 lib/rubygems/safe_yaml.rb
rubygems-update-3.5.16 lib/rubygems/safe_yaml.rb
rubygems-update-3.5.15 lib/rubygems/safe_yaml.rb
rubygems-update-3.5.14 lib/rubygems/safe_yaml.rb
rubygems-update-3.5.13 lib/rubygems/safe_yaml.rb
rubygems-update-3.5.12 lib/rubygems/safe_yaml.rb
rubygems-update-3.5.10 lib/rubygems/safe_yaml.rb
rubygems-update-3.5.9 lib/rubygems/safe_yaml.rb
rubygems-update-3.5.8 lib/rubygems/safe_yaml.rb
rubygems-update-3.5.7 lib/rubygems/safe_yaml.rb