From 37d61ff9db33d4641d3348b8479321c15c7d0336 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Tue, 21 Dec 2021 14:11:03 -0500 Subject: [PATCH] ext: load C extension files from non-native gems via "require" and not "require relative" Fixes #21 --- lib/magic.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/magic.rb b/lib/magic.rb index 5c1cc91..d7fecf1 100644 --- a/lib/magic.rb +++ b/lib/magic.rb @@ -4,7 +4,10 @@ ::RUBY_VERSION =~ /(\d+\.\d+)/ require_relative "magic/#{Regexp.last_match(1)}/magic" rescue LoadError - require_relative 'magic/magic' + # use "require" instead of "require_relative" because non-native gems will place C extension files + # in Gem::BasicSpecification#extension_dir after compilation (during normal installation), which + # is in $LOAD_PATH but not necessarily relative to this file (see #21 and nokogiri#2300) + require 'magic/magic' end require_relative 'magic/version'