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 |