From f511ff3b3af4e70877538b911fde27c57792fc1d Mon Sep 17 00:00:00 2001 From: Charles Oliver Nutter Date: Wed, 26 Jan 2022 23:29:17 -0600 Subject: [PATCH] [ruby/yaml] Add JRuby-specific warning when psych fails The error here is confusing for users because JRuby does not use libyaml and installing it will not help. Instead, JRuby directs them to a wiki page that describes an issue when multiple conflicting versions of SnakeYAML are installed. This change allows us to use the yaml gem and delete our local sources. https://github.com/ruby/yaml/commit/8122087ffb --- lib/yaml.rb | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/yaml.rb b/lib/yaml.rb index 17b27e802f..6d5d5ebd4c 100644 --- a/lib/yaml.rb +++ b/lib/yaml.rb @@ -3,9 +3,17 @@ begin require 'psych' rescue LoadError - warn "It seems your ruby installation is missing psych (for YAML output).\n" \ - "To eliminate this warning, please install libyaml and reinstall your ruby.\n", - uplevel: 1 + case RUBY_ENGINE + when 'jruby' + warn "The Psych YAML extension failed to load.\n" \ + "Check your env for conflicting versions of SnakeYAML\n" \ + "See https://github.com/jruby/jruby/wiki/FAQs#why-does-the-psych-yaml-extension-fail-to-load-in-my-environment", + uplevel: 1 + else + warn "It seems your ruby installation is missing psych (for YAML output).\n" \ + "To eliminate this warning, please install libyaml and reinstall your ruby.\n", + uplevel: 1 + end raise end