Сценарий: Я разрабатываю драгоценный камень 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
по определенному пути. Это было бы глупо.
Есть ли у кого-нибудь хорошее решение для этого случая использования?