Подтвердить что ты не робот

Как указать в Gemfile a.gemspec, расположенный в подкаталоге репозитория Git

Я искал spree repo в github, и я хотел бы указать в Gemfile моего rails app драгоценный камень, который находится в подкаталог core основного репозитория.

Структура папок в репозитории такова:

|~spree                   [git root]
| |-spree.gemspec         [spree gem located here]
|~core
| |-spree_core.gemspec    [spree_core gem located here]

Другими словами, я хотел бы сделать что-то в этом направлении:

gem 'spree-core', :git => 'git://github.com/spree/spree.git'

Проблема в том, что я получаю следующее сообщение об ошибке при попытке bundle install:

Не удалось найти gem 'spree-core ( >= 0)' в git://github.com/spree/spree.git(у мастера). Источник не содержит версий "spree-core ( >= 0)"

4b9b3361

Ответ 1

Что вы можете сделать, это создать репо, которое содержит только подкаталог core и связанный с ним файл spree_core.gemspec. Это также приведет к более тонкой установке. Вы также можете захватить содержимое каталога, связанного с вашим приложением, и распространять его следующим образом:

gem 'spree-core', :path => 'vendor/gems/spree/core'

Возможность установки bundler из репозитория git несколько ограничена в соответствии с документацией, в которой ожидается spree_core/spree_core.gemspec, а не core/spree_core.gemspec.

Этот надзор со стороны создателя драгоценных камней является обычным явлением, поскольку большинство людей не ожидают, что люди установят что-либо, кроме официально опубликованного драгоценного камня. По крайней мере, приятно, что файл .gemspec доступен, поскольку некоторые проекты даже не включают в себя много разочарования многих.

Ответ 2

Это впервые появилось в поиске Google, и ответ, который был задан, никогда не был правильным, или Bundler изменил его поведение.

В OP возникла орфографическая ошибка, и ошибка, похоже, соответствует исходной проблеме. В частности, spree-core не следует переносить.

Следующее должно работать нормально:

gem 'spree_core', github: 'spree/spree'