Module: LibyearBundler::YAMLLoader

Defined in:
lib/libyear_bundler/yaml_loader.rb

Overview

Supports different versions of the ‘YAML` constant. For example,

> psych 3.0.3 YAML#safe_load expected the permitted/whitelisted classes in > the second parameter. > > psych 3.1.0 YAML#safe_load introduced keyword argument permitted_classes > in addition to permitted/whitelisted classes in the second parameter. > > psych 4.0.0 dropped the second positional parameter of YAML#safe_load, and > expects the permitted/whitelisted classes only in keyword parameter > permitted_classes. > github.com/jaredbeck/libyear-bundler/issues/22

I expect this will only get more complicated over the years, as we try to support old rubies for as long as possible.

Other known issues:

Class Method Summary collapse

Class Method Details

.safe_load(yaml, permitted_classes: [::Date]) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/libyear_bundler/yaml_loader.rb', line 27

def safe_load(yaml, permitted_classes: [::Date])
  if YAML.method(:safe_load).parameters.include?([:key, :permitted_classes])
    YAML.safe_load(yaml, permitted_classes: permitted_classes)
  else
    YAML.safe_load(yaml, permitted_classes)
  end
end