Risposte:
Credo che tu possa fare questo:
gem "foo", path: "/path/to/foo"
spring stop
a vedere se è davvero il problema.
Oltre a specificare il percorso (come menzionato da Jimmy), puoi anche forzare Bundler a utilizzare una gemma locale per il tuo ambiente solo usando la seguente opzione di configurazione:
$ bundle config local.GEM_NAME /path/to/local/git/repository
Questo è estremamente utile se stai sviluppando due gemme o una gemma e un'app di binari affiancate.
Nota però che funziona solo quando stai già usando git per la tua dipendenza, ad esempio:
# In Gemfile
gem 'rack', :github => 'rack/rack', :branch => 'master'
# In your terminal
$ bundle config local.rack ~/Work/git/rack
Come visto sui documenti .
BUNDLE_PATH
(costruendo un pacchetto per la distribuzione). Quando fa quello che hai suggerito, o la risposta di Jimmy, fa solo un using
, e non si installa nella mia BUNDLE_PATH
cartella. Non sono riuscito a capirlo, qualche aiuto?
bundle config --delete local.GEM_NAME
bundle config disable_local_branch_check true
o Bundler si lamenterà del ramo. Fai attenzione, tuttavia, poiché i controlli dovrebbero impedire l'ingresso errato di commit Gemfile.lock
. Documenti qui: bundler.io/v1.12/git.html
Puoi anche fare riferimento a una gemma locale con git se ti capita di lavorarci sopra.
gem 'foo',
:git => '/Path/to/local/git/repo',
:branch => 'my-feature-branch'
Quindi, se cambia, corro
bundle exec gem uninstall foo
bundle update foo
Ma non sono sicuro che tutti debbano eseguire questi due passaggi.
bundle uninstall <gem> && bundle install
, per ogni cambiamento che desideri riflesso sulla tua app
Per utilizzare il repository gem locale in un progetto Rails, attenersi alla seguente procedura:
Controlla se la tua cartella gem è un repository git (il comando viene eseguito nella cartella gem)
git rev-parse --is-inside-work-tree
Ottenere il percorso del repository (il comando viene eseguito nella cartella gem)
git rev-parse --show-toplevel
Impostazione di una sostituzione locale per l'applicazione rotaie
bundle config local.GEM_NAME /path/to/local/git/repository
dov'è GEM_NAME
il nome della tua gemma ed /path/to/local/git/repository
è l'output del comando nel punto2
Nella tua applicazione Gemfile
aggiungi la seguente riga:
gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
La corsa bundle install
dovrebbe dare qualcosa del genere:
Using GEM_NAME (0.0.1) from git://github.com/GEM_NAME/GEM_NAME.git (at /path/to/local/git/repository)
dov'è GEM_NAME
il nome della tua gemma e /path/to/local/git/repository
dal punto2
Infine, corri bundle list
, non gem list
e dovresti vedere qualcosa del genere:
GEM_NAME (0.0.1 5a68b88)
dov'è GEM_NAME
il nome della tua gemma
Alcuni casi importanti che sto osservando usando:
Rails 4.0.2
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Ubuntu 13.10
RubyMine 6.0.3
RubyMine
non mostri gemme locali come una biblioteca esterna. Ulteriori informazioni sul bug sono disponibili qui e quistop/start
il server railsSe sto cambiando la version
gemma, stopping/starting
il server Rails mi dà un errore. Per risolverlo, sto specificando la versione gem nell'applicazione rails in Gemfile
questo modo:
gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
Puoi fare riferimento a gemme con l'origine: source: 'https://source.com', git repository (:github => 'git/url')
e con il percorso locale :path => '.../path/gem_name'
.
Puoi saperne di più sui Gemfile e su come usarli in questo articolo.