如何解决挂钩后是否有捆绑器?
| 我想让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:”部分。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。