Bundler и Heroku: условные камни / две разные версии камня - PullRequest
3 голосов
/ 19 января 2012

У меня есть гем, который не является общедоступным и не находится в общедоступном репо (он находится в локальной файловой системе), который я хочу использовать в приложении, размещенном на Heroku.

Bundler даже не допускает этого, например:

group :production do
  gem 'mygem', :git => #giturl
end

group :development do
  gem "mygem", :require => "mygem", :path => "/gem_dev/mygem"
end

$ bundle install
...
You cannot specify the same gem twice coming from different sources. You specified that mygem (>= 0) should come from source at vendor/cache and source at ...

Я использовал bundle install --path vendor и bundle package, чтобы попытаться заставить его использовать кеш, но, поскольку самоцвет - это локальный путь, Бандлер говорит мне (полезно), что он не будет его кэшировать. Чтобы обойти это, я скопировал .gem в vendor / cache и получил строку в Gemfile:

gem 'mygem', :path => 'vendor/cache'

но я получаю эту ошибку от Bundler:

Could not find gem 'mygem (>= 0) ruby' in source at vendor/cache.
Source does not contain any versions of 'mygem (>= 0) ruby'

Героку нужен правильный путь. Любые идеи, как я могу заставить это работать на меня?

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 20 января 2012

Это невозможно сделать с текущей версией (1.0.x).От http://gembundler.com/man/bundle-package.1.html

GIT и PATH GEMS В Bundler 1.0 команда bundle package только упаковывает файлы .gem, но не gems, указанные с помощью параметров: git или: path.Скорее всего, это изменится в будущем.

Что мое мнение:

Почему бы и нет?Это, конечно, не было техническим решением, так что я ... огорчен ... Предполагается, что Бандлер решит проблемы, и, поскольку он написан на Ruby несколькими известными рубиистами, вы ожидаете (или я бы), что они пошли бы по тому же пути, что и ядро ​​Ruby - мы взрослые люди, давайте выберем то, что мы действительно хотим сделать, независимо от того, считает ли компьютер иначе.

Если я использую Bundler и хочу установить тысячу разных версий гема, то это должно быть моим делом.Предупреждение было бы сделано.Будем надеяться, что в следующей версии это странное решение не будет включено в код.

...