Как указать в Gemfile .gemspec, расположенный в подкаталоге Git-репозитория - PullRequest
13 голосов
/ 27 апреля 2011

Я подписал репо 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)'

Ответы [ 2 ]

6 голосов
/ 27 апреля 2011

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

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

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

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

5 голосов
/ 14 октября 2014

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

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

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

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