Module: Kdep::YAMLCompat

Defined in:
lib/kdep/yaml_compat.rb

Overview

Compatibility shim for YAML.safe_load across Psych versions.

Psych 3.0 (Ruby 2.5): positional args only. Psych 3.1+ (Ruby 2.6+): kwargs added, positional still accepted. Psych 4.0+ (Ruby 3.1+): positional removed — kwargs only.

We discriminate on Psych::VERSION (NOT RUBY_VERSION) because Psych is a default gem and can be updated independently of the Ruby runtime — e.g. Ruby 3.0 with an upgraded Psych 4+ would break a RUBY_VERSION-based check.

Class Method Summary collapse

Class Method Details

.safe_load(content, filename: nil) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/kdep/yaml_compat.rb', line 16

def safe_load(content, filename: nil)
  if Gem::Version.new(Psych::VERSION) >= Gem::Version.new("3.1.0")
    YAML.safe_load(content, permitted_classes: [], permitted_symbols: [], aliases: false, filename: filename)
  else
    YAML.safe_load(content, [], [], false, filename)
  end
end