Ответ 1
Джон из прошлого! Как вы знаете, у меня есть ответы на почти все ваши проблемы.
В этом случае вы фактически описываете две проблемы: (a) вы не можете require 'pry'
, когда Pry не находится в Gemfile, (b) вы не можете использовать Pry, если вы не require
он.
Что делает Бундлер, как Конрад Ирвин пишет:
Bundler - потрясающий камень, который дает вам хорошую уверенность в том, что "если он работает в разработке, он работает в производстве". Он может сделать это, будучи порочным в отношении зависимостей драгоценных камней: если это не в Gemfile, это не требуется. Это также гарантирует, что каждая среда разработки идентична, больше не работает "на моей машине", сокращая ее как оправдание.
Есть обстоятельства, когда эта догматическая преданность делу может мешать. В частности, все хорошие разработчики настроили свою среду разработки очень лично. Очевидно, что не важно, что мои локальные инструменты работают на производстве, и это положительно плохо для производительности, если каждый вынужден иметь идентичную разработку.
Итак, делая все хорошие вещи, которые Bundler делает для разработчиков Ruby, он приходит по дизайну с предостережением: "то, что вне пакета /Gemfile (например, системные драгоценности) больше не существует". Как это происходит, переопределив процесс require
и изменив ваш PATH
так, чтобы он только видел, что в пакете.
Это означает, что вы не можете использовать Pry вообще, не загрязняя Gemfile, вы говорите, правильно? Не так быстро. Конрад Ирвин был умным маленьким печеньем, которым он является, придумал решение и сделал Pry Debundle, драгоценный камень, который временно меняет патчи Bundler, сделанные для наши требования.
Итак, все, что вам нужно сделать, это просто require 'pry-debundle'
, тогда, правильно? О... подождите. Да, Debundle, вероятно, не в Gemfile.
Исправление обезьяны - это скопировать источник pry-debundle.rb
в ~/debundle.rb
, а затем load
. (На данный момент вам понадобится Pry, загруженный для запуска этого исходного файла, но вы можете запустить только метод debundle!
, чтобы добраться туда, потребовать Pry и покрутиться. Небольшая парализованная привязка необходима, но я работаю над PR.)