Сценарий: Я разрабатываю драгоценный камень gem-foo, используя Bundler. У меня есть зависимость от gem-bar, которую я проверил локально для разработки. Я могу объявить эту зависимость в Gemfile как:
gem "gem-bar", :path => "/path/to/local/gem-bar"
Однако при разработке драгоценного камня "наилучшей практикой", по-видимому, является определение необходимых драгоценных камней в gem-foo.gemspec с помощью:
s.add_runtime_dependency 'gem-bar'
а затем просто включите зависимости в Gemfile, используя:
gemspec
Что я хотел бы сделать, так это добавить зависимость времени выполнения от gem в gemspec, но внести некоторые локальные изменения в gem-bar и использовать bundle install для локальной проверки разработки. Предположим, что я управляю обоими камнями, и я несколько раз взламываю их, и я буду запускать новые версии одновременно. Я мог бы просто прокомментировать s.add_runtime_dependency в gemspec и добавить его с локальным путем в Gemfile, но это кажется... подверженным ошибкам? Gemspec всегда должен объявлять эту зависимость, и Gemfile должен иметь возможность переопределить местоположение, которое Bundler должен использовать для драгоценного камня. Однако, если вы действительно это сделаете, вы получите следующую ошибку:
Вы не можете указать один и тот же камень дважды из разных источников. Вы указали, что gem-bar ( >= 0) должен поступать из источника и источника неспеченного источника в /path/to/local/gem -bar
В идеале, у меня просто есть своего рода локальное переопределение, так как я никогда не хочу случая, когда я случайно нажимаю камень с требованием локального gem-bar по определенному пути. Это было бы глупо.
Есть ли у кого-нибудь хорошее решение для этого случая использования?