Rápido acceso a la documentación de las gemas instaladas
Seguimos con truquitos de shell para desarrolladores, en este caso de Ruby. Os estoy enseñando mi ~/.bash_profile por fascículos ![]()
En este caso se trata de estar en concidiones de acudir al viejo aforismo "si todo lo demás falla, consulta el manual", en nuestro caso con las gemas de ruby que tengamos instaladas y que, mejor o peor, suelen venir documentadas.
No sé si conocéis el comando gem server (deberíais). Levanta un servidor web (creo que es un Webrick) en el puerto 8808 de nuestra máquina, apuntando directamente a la documentación de las gemas. Nos bastará apuntar nuestro navegador favorito a http://localhost:8808/, buscar la gema en cuestión, y ponernos a leer.
Pero se puede hacer más cómodo aún, metiendo esto en nuestro ~/.bash_profile:
export GEMDIR=`gem env gemdir`
gemdoc() {
open $GEMDIR/doc/`$(which ls) $GEMDIR/doc | grep $1 | sort | tail -1`/rdoc/index.html
}
_gemdocomplete() {
COMPREPLY=($(compgen -W '$(`which ls` $GEMDIR/doc)' -- ${COMP_WORDS[COMP_CWORD]}))
return 0
}
complete -o default -o nospace -F _gemdocomplete gemdoc
La segunda función y la última línea son para dar autocompletado al comando, lo cual lo hace aún más atractivo para vagos. Por cierto, yo nunca le había metido mano al autocompletado en bash y tiene pinta de ser bastante simple la cosa, si investigo algo más ya os contaré.
El caso es que con la función gemdoc tendremos acceso directamente a la documentación de una gema concreta (en vez de al índice), sin necesidad de levantar el servidor (accede directamente al sistema de archivos), y además con autocompletado:
(Sacado de aquí).
Nota: según el sistema operativo, quizás necesites cambiar alguna cosa del script (en particular, puede que tengas que cambiar la llamada a open por una llamada a tu navegador favorito). Esto funciona tal cual en MacOSX.






blat dijo
Yo tengo este alias:
alias gems='cd /opt/local/lib/ruby/gems/1.8/gems/'
Y desde ahí ya abro los fuentes de la gema, más que nada porque las instalo sin documentación.
11 Julio 2008 | 12:16 PM