diff --git a/isolated/README.md b/isolated/README.md index 9ebde15..4de03a1 100644 --- a/isolated/README.md +++ b/isolated/README.md @@ -58,9 +58,14 @@ gcc -shared -L/path/to/ruby/lib -lruby -lc -lm isolated.o -o isolated.so That final shared library, `isolated.so`, is loaded like any other Ruby file, via `require` in `lib/rcee/isolated.rb`: ``` ruby -require_relative "isolated/isolated" +require "rcee/isolated/isolated" ``` +Even though RubyGems currently installs shared libraries relatively to Ruby +files in lib/, it may stop doing so in the future, so it's safer to not load +shared libraries from Ruby code using `require_relative`, but rather rely on the +`$LOAD_PATH` and use `require`. + ## Testing See [.github/workflows/isolated.yml](../.github/workflows/isolated.yml) diff --git a/isolated/lib/rcee/isolated.rb b/isolated/lib/rcee/isolated.rb index cdfe31b..63942ea 100644 --- a/isolated/lib/rcee/isolated.rb +++ b/isolated/lib/rcee/isolated.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require_relative "isolated/version" -require_relative "isolated/isolated" +require "rcee/isolated/isolated" module RCEE module Isolated diff --git a/packaged_source/lib/rcee/packaged_source.rb b/packaged_source/lib/rcee/packaged_source.rb index c45426f..23a45c9 100644 --- a/packaged_source/lib/rcee/packaged_source.rb +++ b/packaged_source/lib/rcee/packaged_source.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require_relative "packaged_source/version" -require_relative "packaged_source/packaged_source" +require "rcee/packaged_source/packaged_source" module RCEE module PackagedSource diff --git a/packaged_tarball/lib/rcee/packaged_tarball.rb b/packaged_tarball/lib/rcee/packaged_tarball.rb index 3e994eb..de5b3bf 100644 --- a/packaged_tarball/lib/rcee/packaged_tarball.rb +++ b/packaged_tarball/lib/rcee/packaged_tarball.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require_relative "packaged_tarball/version" -require_relative "packaged_tarball/packaged_tarball" +require "rcee/packaged_tarball/packaged_tarball" module RCEE module PackagedTarball diff --git a/precompiled/lib/rcee/precompiled.rb b/precompiled/lib/rcee/precompiled.rb index e14b9f1..6e74c6b 100644 --- a/precompiled/lib/rcee/precompiled.rb +++ b/precompiled/lib/rcee/precompiled.rb @@ -5,7 +5,7 @@ begin # load the precompiled extension file ruby_version = /(\d+\.\d+)/.match(::RUBY_VERSION) - require_relative "precompiled/#{ruby_version}/precompiled" + require "rcee/precompiled/#{ruby_version}/precompiled" rescue LoadError # fall back to the extension compiled upon installation. # use "require" instead of "require_relative" because non-native gems will place C extension files diff --git a/system/lib/rcee/system.rb b/system/lib/rcee/system.rb index a882f84..37886e8 100644 --- a/system/lib/rcee/system.rb +++ b/system/lib/rcee/system.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require_relative "system/version" -require_relative "system/system" +require "rcee/system/system" module RCEE module System