instalar - ruby on rails
RubĂ gema equivalente de "pip instalar-e"? (3)
Hay dos enfoques comunes que uno podría usar con bundler
:
- uno ejecuta la
bundle install --path vendor/bundle
y no ejecuta labundle update
menos que todo esté probado . - uno le dice a un agrupador que use una versión local de la gema:
- en
Gemfile
(esto no se admite enmymaingem.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
.
- en
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:
- Clona la gema de VCS (en la mayoría de los casos: git), p. Ej.
git clone url-of-the-gem-repo
- 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"