挂钩后是否有捆绑器?

问题描述

| 我想让ctags生成我所有捆绑的gem的TAGS文件,或者rvm gemset目录捆绑程序下的所有gem安装其gem。理想情况下,捆绑包安装或捆绑包更新应在最后一步使用我提供的ruby脚本生成TAGS文件。此后,emacs欣喜若狂。 我可以使用钩子之后有捆扎机吗?     

解决方法

您可以看看蒂姆·波普(Tim Pope)在他的
Hookup
项目中的工作: https://github.com/tpope/hookup 我想,捆绑器运行之后,再增加一个步骤并不难。 就我个人而言,我的Ruby项目中只有一个很好的旧Makefile:
.PHONY: tags

tags:
    ETAGS=ctags
    rm -rf TAGS
    ctags -a -e -f TAGS --tag-relative -R app lib vendor
我有一个早上运行的shell脚本,它设置了我的开发环境,该环境也运行
make tags
。     ,根据https://github.com/bundler/bundler/blob/dd1e11d8f8e869ffab4fc68d4854b27e1f486de4/lib/bundler/source/path.rb的描述,可以运行\'post_install \'挂钩。它使用元编程来推断方法名称,而gem应该实现该方法。会尝试检查是否可行     ,我的方法有两个方面: 1)放置一个rake任务,该任务为项目中的所有代码以及所有必需的gem生成标签:
desc \'Create ctags\'
task :tags do
  system \"ctags -R --language-force=ruby app config lib `rvm gemdir`/gems\"
end
2)使用出色的“ foreman” gem(无论如何我一直在使用)运行inotifywait并在文件更改时触发rake任务:
tags: while inotifywait -q -r -e MODIFY --exclude swp$ app/ config/ lib/ ; do bundle exec rake tags; done
如果您不使用工头,您当然可以在外壳中手动运行该行而无需第一个“ tags:”部分。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...