tutorial rails instalar how gems gemas ruby gem

instalar - ruby on rails



RubĂ­ gema equivalente de "pip instalar-e"? (3)

Hay dos enfoques comunes que uno podría usar con bundler :

  1. uno ejecuta la bundle install --path vendor/bundle y no ejecuta la bundle update menos que todo esté probado .
  2. uno le dice a un agrupador que use una versión local de la gema:
    • en Gemfile (esto no se admite en mymaingem.gemspec debido a problemas de mantenimiento de rubygems): gem ''mycutegem'', :git => ''git://github.com/myname/mycutegem'', :branch => ''master'' ;
    • en la línea de comando: bundle config local.mycutegem /path_to_local_git/mycutegem .

El primer enfoque descargará todo en la subcarpeta de su proyecto actual (aquí sería vendor/bundle ). Siéntase libre de modificar todo lo que esté allí, se reflejará.

El segundo enfoque es probablemente mejor. Debes clonar la gema de github e instruir al bundle para que use tu clon local del repositorio de git correspondiente. Este enfoque le brinda la posibilidad de publicar los cambios a su gema principal en el repositorio. Tan pronto como se publique el repositorio dependiente, los suscriptores de la gema recuperarán la versión actualizada, asumiendo que no han dado instrucciones a sus bundler para que usen sus locales.

Espero que esto ayude.

En Python puedo instalar un paquete desde la fuente en modo "editable" usando pip install -e . Luego puedo continuar editando el código, y cualquier cambio será seleccionado automáticamente por otros scripts de Python que import library

¿Existe un flujo de trabajo comparable para desarrollar gemas Ruby? ¿Cuál es la "forma Ruby" de usar libs a medida que se desarrollan, en lugar de, por ejemplo, compilar e instalar una gema cada vez que realizo un cambio en la fuente?


No estoy seguro de si esto es exactamente lo que quiere lograr, pero de la descripción deduzco que desea tener una copia local de alguna gema y hacer referencia a esa gema en su proyecto. Si este es el caso, puedes (usualmente) lograrlo en dos pasos:

  1. Clona la gema de VCS (en la mayoría de los casos: git), p. Ej. git clone url-of-the-gem-repo
  2. Haga referencia a la copia local utilizando Bundler: ruta, por ejemplo, gem "some-gem", :path => "/path/to/local/copy"

Si la gema se almacena en github, una mejor manera es bifurcarla en github y luego clonar su propia copia. Luego, si proporciona alguna mejora al código en el repositorio local, puede compartirlo fácilmente con el mundo mediante una solicitud de extracción.


Supongamos que tiene su código de gema que reside en una carpeta (por ejemplo, my_project/mygem/lib ). Tienes algún código Ruby en my_project que quieres usar con el código mygem .

Lo que haría sería agregar mygem/lib a la variable global $LOAD_PATH al comienzo de dichos archivos. Algo así:

$LOAD_PATH << File.expand_path(''lib'', ''./mygem'') # Resolve global paths require ''a_file'' # Would require "mygem/lib/a_file.rb"