Réponses:
Je pense que vous pouvez le faire:
gem "foo", path: "/path/to/foo"
spring stopde voir si c'est bien le problème.
En plus de spécifier le chemin (comme l'a mentionné Jimmy), vous pouvez également forcer Bundler à utiliser une gemme locale pour votre environnement uniquement en utilisant l'option de configuration suivante:
$ bundle config local.GEM_NAME /path/to/local/git/repository
Cela est extrêmement utile si vous développez deux gemmes ou une gemme et une application de rails côte à côte.
Notez cependant que cela ne fonctionne que lorsque vous utilisez déjà git pour votre dépendance, par exemple:
# In Gemfile
gem 'rack', :github => 'rack/rack', :branch => 'master'
# In your terminal
$ bundle config local.rack ~/Work/git/rack
Comme on le voit sur les documents .
BUNDLE_PATH(construire un package pour la distribution). Lorsque vous faites ce que vous avez suggéré, ou la réponse de Jimmy, cela ne fait qu'un using, et pas réellement l'installation dans mon BUNDLE_PATHdossier. Je n'ai pas pu comprendre cela, une aide?
bundle config --delete local.GEM_NAME
bundle config disable_local_branch_check trueou Bundler se plaindra de la branche. Soyez prudent avec cela, car les vérifications sont censées empêcher les validations incorrectes d'entrer Gemfile.lock. Documents ici: bundler.io/v1.12/git.html
Vous pouvez également référencer une gemme locale avec git si vous travaillez dessus.
gem 'foo',
:git => '/Path/to/local/git/repo',
:branch => 'my-feature-branch'
Ensuite, si ça change, je cours
bundle exec gem uninstall foo
bundle update foo
Mais je ne suis pas sûr que tout le monde doive exécuter ces deux étapes.
bundle uninstall <gem> && bundle install , pour chaque changement que vous souhaitez refléter sur votre application
Afin d'utiliser le référentiel de gemmes local dans un projet Rails, suivez les étapes ci-dessous:
Vérifiez si votre dossier gem est un référentiel git (la commande est exécutée dans le dossier gem)
git rev-parse --is-inside-work-treeObtenir le chemin du référentiel (la commande est exécutée dans le dossier gem)
git rev-parse --show-toplevelConfiguration d'un remplacement local pour l'application de rails
bundle config local.GEM_NAME /path/to/local/git/repository
où GEM_NAMEest le nom de votre bijou et /path/to/local/git/repositoryest la sortie de la commande au point2
Dans votre application, Gemfileajoutez la ligne suivante:
gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'La course bundle installdevrait donner quelque chose comme ceci:
Using GEM_NAME (0.0.1) from git://github.com/GEM_NAME/GEM_NAME.git (at /path/to/local/git/repository)
où GEM_NAMEest le nom de votre bijou et /path/to/local/git/repositorydu point2
Enfin, exécutez bundle list, non gem listet vous devriez voir quelque chose comme ceci:
GEM_NAME (0.0.1 5a68b88)
où GEM_NAMEest le nom de ton bijou
Quelques cas importants que j'observe en utilisant:
Rails 4.0.2
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Ubuntu 13.10
RubyMine 6.0.3
RubyMinepas montrer les gemmes locales comme une bibliothèque externe. Plus d'informations sur le bug peuvent être trouvées ici et icistop/startle serveur railsSi je change la versiongemme, stopping/startingle serveur Rails me donne une erreur. Afin de le réparer, je spécifie la version gem dans l'application rails Gemfilecomme ceci:
gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'Vous pouvez référencer des gemmes avec source: source: 'https://source.com', git repository (:github => 'git/url')et avec chemin local :path => '.../path/gem_name'.
Vous pouvez en savoir plus sur Gemfiles et comment les utiliser dans cet article.