Respuestas:
Creo que puedes hacer esto:
gem "foo", path: "/path/to/foo"
spring stop
ver si realmente es el problema.
Además de especificar la ruta (como mencionó Jimmy), también puede obligar a Bundler a usar una gema local para su entorno solo mediante la siguiente opción de configuración:
$ bundle config local.GEM_NAME /path/to/local/git/repository
Esto es extremadamente útil si está desarrollando dos gemas o una aplicación de gemas y rieles una al lado de la otra.
Sin embargo, tenga en cuenta que esto solo funciona cuando ya está usando git para su dependencia, por ejemplo:
# In Gemfile
gem 'rack', :github => 'rack/rack', :branch => 'master'
# In your terminal
$ bundle config local.rack ~/Work/git/rack
Como se ve en los documentos .
BUNDLE_PATH
(compilando un paquete para distribución). Al hacer lo que sugirió, o la respuesta de Jimmy, solo hace una using
, y en realidad no se instala en mi BUNDLE_PATH
carpeta. No pude resolver esto, ¿alguna ayuda?
bundle config --delete local.GEM_NAME
bundle config disable_local_branch_check true
o Bundler se quejará de la rama. Sin embargo, tenga cuidado con esto, ya que se supone que las comprobaciones detendrán las confirmaciones incorrectas Gemfile.lock
. Documentos aquí: bundler.io/v1.12/git.html
También puede hacer referencia a una gema local con git si está trabajando en ella.
gem 'foo',
:git => '/Path/to/local/git/repo',
:branch => 'my-feature-branch'
Entonces, si cambia, corro
bundle exec gem uninstall foo
bundle update foo
Pero no estoy seguro de que todos necesiten ejecutar estos dos pasos.
bundle uninstall <gem> && bundle install
, por cada cambio que desee reflejado en su aplicación
Para utilizar el repositorio de gemas local en un proyecto Rails, siga los pasos a continuación:
Compruebe si su carpeta de gemas es un repositorio git (el comando se ejecuta en la carpeta de gemas)
git rev-parse --is-inside-work-tree
Obteniendo la ruta del repositorio (el comando se ejecuta en la carpeta de gemas)
git rev-parse --show-toplevel
Configurar una anulación local para la aplicación de rieles
bundle config local.GEM_NAME /path/to/local/git/repository
donde GEM_NAME
está el nombre de tu gema y /path/to/local/git/repository
es la salida del comando en el punto2
En su aplicación Gemfile
agregue la siguiente línea:
gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
Correr bundle install
debería dar algo como esto:
Using GEM_NAME (0.0.1) from git://github.com/GEM_NAME/GEM_NAME.git (at /path/to/local/git/repository)
donde GEM_NAME
está el nombre de tu gema y /path/to/local/git/repository
desde el punto2
Finalmente, corre bundle list
, no, gem list
y deberías ver algo como esto:
GEM_NAME (0.0.1 5a68b88)
donde GEM_NAME
esta el nombre de tu gema
Algunos casos importantes que estoy observando 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
que no muestra gemas locales como una biblioteca externa. Puede encontrar más información sobre el error aquí y aquístop/start
el servidor de rielesSi estoy cambiando la version
gema, stopping/starting
el servidor Rails me da un error. Para solucionarlo, estoy especificando la versión de gema en la aplicación de rieles de Gemfile
esta manera:
gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
Puede hacer referencia a gemas con fuente: source: 'https://source.com', git repository (:github => 'git/url')
y con ruta local :path => '.../path/gem_name'
.
Puede obtener más información sobre Gemfiles y cómo usarlos en este artículo.