Files
nixpkgs/pkgs/development/interpreters/ruby/rbconfig.rb
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

26 lines
1014 B
Ruby

# This is a shim around whatever real rbconfig.rb is in the LOAD_PATH,
# so that RbConfig::CONFIG["ridir"] can be overridden to point to the
# custom location of the ri docs, without the main derivation having
# those docs in its closure.
MY_PATH = File.realpath(__FILE__)
candidates = $LOAD_PATH.map { |dir| File.join(dir, "rbconfig.rb") }
# First, drop everything _before_ this file in the LOAD_PATH, just on
# the off-chance somebody is composing shims like this for some reason.
candidates.drop_while { |c| !File.exist?(c) || File.realpath(c) != MY_PATH }
# Now, the wrapped rbconfig.rb is the next rbconfig.rb in the LOAD_PATH
# that isn't this same file. (Yes, duplicate LOAD_PATH entries are a
# thing we have to deal with.)
next_rbconfig = candidates.find { |c|
File.exist?(c) && File.realpath(c) != MY_PATH
}
# Load the wrapped rbconfig.rb
require next_rbconfig
# Now we have RbConfig, and can modify it for our own ends.
RbConfig::CONFIG["ridir"] = File.expand_path("../../../share/ri", __dir__)