如何更轻松地运行Rake任务?

时间:2013-10-18 21:46:44

标签: ruby-on-rails ruby shell rake zsh

运行Rake任务可能很尴尬。

命令往往很长。

例如......

$ bundle exec rake some_project:clear_expired_sessions

另外,我可能并不总是记得偶尔使用的某些任务的确切名称。

所以我必须首先发现任务的名称,然后将其复制并粘贴到命令行中......

$ bundle exec rake -T some_project

我在OS X上使用Zsh oh-my-zsh和Rake插件。

它提供了Rake任务的制表符完成功能,但你仍然需要输入“bund exec rake”,完成的加载速度非常慢 - 我的机器上几秒钟。

有更有效的方法吗?

2 个答案:

答案 0 :(得分:1)

您可以随时为.bashrc或.bash_profile添加别名,以避免将来bundle exec rake

alias rake='bundle exec rake'

当然,每当您运行bundle exec时,rake都会受到影响,由您决定是否需要它。

或针对项目特定(假设您的项目是rails_blog)

alias rkblog=railsblogtasks()
function railsblogtasks(){
  cd /path/to/blog/;
  bundle exec rake -T;
end

alias rkblogrun=runblogtask()
function runblogtask(){
  cd /path/to/blog/;
  bundle exec rake $1;
end

现在$ rkblog将显示所有rails_blog任务,$ rkblogrun <task>将运行rails_blog项目中的任何任务。这当然可以被重构和抽象,但是有一个普遍的想法。

答案 1 :(得分:0)

快速简化:

task :example_alias => :environment do
  Rake::Task[some_project:clear_expired_sessions].invoke
end

然后你可以简单地做

  $ rake example_alias