Poziom: 0 | Kategoria: Komputerowo-internetowo, Ruby, Techblog.
Ostatnio cierpię na brak czasu, stąd trochę zaniedbałem bloga. Dzisiaj krótka rzecz, która ułatwi pracę z gemami oraz z Rake. Przyznam się, że poniższe skrypty nie są mojego autorstwa, ja jedynie popularyzuję je.
Tworzymy funkcję w bashu gemdoc, która otworzy nam w przeglądarce dokumentacje RDoc podanego gema. Oczywiście obsłużymy autocomplete. Poniższy kod wklejamy do naszego pliku .bash_profile, po czym przeładowujemy ów plik poleceniem
$ source ~/.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
Funkcja pochodzi z bloga Stephena.
Drugą przydatną funkcją jest automatyczne dopełnianie tasków Rake. Kod wklejamy jak powyżej do naszego .bash_profile.
export COMP_WORDBREAKS=${COMP_WORDBREAKS/\:/}
_rakecomplete() {
COMPREPLY=($(compgen -W "`rake -s -T | awk '{{print $2}}'`" -- ${COMP_WORDS[COMP_CWORD]}))
return 0
}
complete -o default -o nospace -F _rakecomplete rake
Takie skrypty przydatne są bardzo jak ktoś grzebie sporo w gemach, rubym, źródłach itp.
Ja jeszcze mam coś takiego (też z sieci, a co:P):
function cdgem { cd /usr/lib/ruby/gems/1.8/gems/; cd `ls|grep $1|sort|tail -1`
}
$ cdgem ebb
21 czerwca 2008 o 12:52:35$ pwd
/usr/lib/ruby/gems/1.8/gems/ebb-0.2.1
Fajna sprawa, do tego też przyda się autocomplete:
export GEMDIR=`gem env gemdir` _cdgemcomplete() { COMPREPLY=($(compgen -W '$(`which ls` $GEMDIR/gems)' -- ${COMP_WORDS[COMP_CWORD]})) return 0 } complete -o default -o nospace -F _cdgemcomplete cdgem21 czerwca 2008 o 13:28:38Fajne sprawki. W wolnej chwili spróbuję ich użyć w zsh, dopełnianie rake tasków mi działa już.
21 czerwca 2008 o 14:20:37