У меня есть рубиновый гем (назовем его my_gem
), который предоставляет исполняемый файл (назовем его my_exe
). Когда я добавляю gem "my_gem", "0.0.1"
в Gemfile приложения и запускаю bundle exec my_exe
, я правильно получаю спецификацию gem для версии 0.0.1 при вызове Gem::Specification.find_by_name("my_gem")
.
Мне нужен этот исполняемый файл для работы без участия упаковщика. Когда я выполню
my_gem _0.0.1_
и посмотрите на значение Gem::Specification.find_by_name("my_gem")
, я получу обратно спецификации для последней установленной версии my_gem
в системе.
Как мне получить Gem::Specification.find_by_name
, чтобы вернуть спецификацию драгоценного камня, которая соответствует значению, которое я передаю в execuable?
Обновление
Есть часть информации, которую я забыл упомянуть. Я не могу изменить код, который вызывает Gem::Specification.find_by_name("my_gem")
. Эта конкретная строка кода вызывается в сторонней библиотеке, которую вызывает my_exe
. (Библиотека RuboCop, и здесь RuboCop пытается загрузить спецификацию (https://github.com/bbatsov/rubocop/blob/v0.55.0/lib/rubocop/config_loader_resolver.rb#L186) Я пытаюсь настроить среду, поэтому Gem::Specification.find_by_name("my_gem")
возвращает спецификацию для версии my_gem
, которая находится на $LOAD_PATH
Должен быть способ сделать это, так как bundler
способен сделать это.