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

Я разветвил репозиторий spree на github и хотел бы указать в Gemfile моего приложения rails гем, который находится в подкаталоге 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 я получаю следующее сообщение об ошибке:

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


person Matt    schedule 27.04.2011    source источник


Ответы (2)


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

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

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

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

person tadman    schedule 27.04.2011

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

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

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

gem 'spree_core', github: 'spree/spree'
person mushishi78    schedule 13.10.2014