rails instalar gems gemas actualizar ruby-on-rails ruby ruby-on-rails-3 rubygems bundler

ruby-on-rails - instalar - ruby gemfile



¿Cómo puedo especificar una gema local en mi Gemfile? (6)

Además de especificar la ruta (como mencionó Jimmy), también puede forzar a Bundler a usar una gema local para su entorno usando la siguiente opción de configuración:

$ bundle config local.GEM_NAME /path/to/local/git/repository

Esto es extremadamente útil si estás desarrollando dos gemas o una gema y una aplicación de 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 .

Me gustaría que Bundler cargara una gema local. ¿Hay una opción para eso? ¿O tengo que mover la carpeta de gemas al directorio .bundle?


Creo que puedes hacer esto:

gem "foo", :path => "/path/to/foo"


Para utilizar el repositorio local de gemas en un proyecto de Rails, siga los pasos a continuación:

  1. Compruebe si su carpeta de gemas es un repositorio de git (el comando se ejecuta en la carpeta de gemas)

    git rev-parse --is-inside-work-tree

  2. Obtención de la ruta del repositorio (el comando se ejecuta en la carpeta gema)

    git rev-parse --show-toplevel

  3. Configuración de una anulación local para la aplicación de rieles

    bundle config local.GEM_NAME /path/to/local/git/repository

    donde GEM_NAME es el nombre de su gema y /path/to/local/git/repository es la salida del comando en el punto 2

  4. En su aplicación Gemfile agregue la siguiente línea:

    gem ''GEM_NAME'', :github => ''GEM_NAME/GEM_NAME'', :branch => ''master''

  5. La bundle install ejecución 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 es el nombre de tu gema y /path/to/local/git/repository desde el punto 2

  6. Finalmente, ejecute la bundle list , no la gem list y debería ver algo como esto:

    GEM_NAME (0.0.1 5a68b88)

    donde GEM_NAME es 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

  • Parece que RubyMine no está mostrando gemas locales como una biblioteca externa. Más información sobre el error se puede encontrar here y here
  • Cuando cambio algo en la gema local, para poder cargarlo en la aplicación de rieles, debo stop/start el servidor de rieles
  • Si estoy cambiando la version de la gema, al stopping/starting el servidor Rails me da un error. Para solucionarlo, estoy especificando la versión de gema en la aplicación de rieles Gemfile esta manera:

    gem ''GEM_NAME'', ''0.0.2'', :github => ''GEM_NAME/GEM_NAME'', :branch => ''master''


Puede hacer referencia a gemas con source: source: ''https://source.com'', git repository (:github => ''git/url'') y con ruta local :path => ''.../path/gem_name'' .
Puedes aprender más sobre Gemfiles y cómo usarlos en este artículo.


Si quieres la rama también:

gem ''foo'', path: "point/to/your/path", branch: "branch-name"


También puedes hacer referencia a una gema local con git si estás 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.