Проблема с проверенным ответом состоит в том, что вы должны «потребовать» rubygem, иначе он не будет работать.Часто это нежелательно, потому что, если вы работаете с исполняемым гемом, вам не нужно его «требовать», иначе вы получите кучу предупреждений.
Это универсальное решение для исполняемых файлов и библиотек:
spec = Gem::Specification.find_by_name("cucumber")
gem_root = spec.gem_dir
gem_lib = gem_root + "/lib"
Если вы хотите получить действительно техническую информацию, не существует только одного каталога lib.В gemspec есть массив require_paths всех каталогов для поиска (добавлен в $ LOAD_PATH).Итак, если вам нужен массив require_paths, используйте это:
gem_lib = gem_root + "/" + spec.require_paths[0]
Нет необходимости в компоновщике.