Ruby'Rake Build Tool

Rake开始是作为Ruby的构建包,但不局限于此,它可作为一个自动化工具。可用它在项目中作所有自动化任务。

Rake运行时,默认会在当前目录查找叫Rakefile的文件,里面有需要它执行的任务。

desc "Remove files whose names end with a tilde"
task :delete_unix_backups do
  files = Dir['*~']
  rm(files, verbose: true) unless files.empty?
end

 desc与task是Rake定义的方法,task的名称是一个symbol。

调用这个Rake的方式:
rake delete_unix_backups(注意没有使用symbol-没有代冒号)。

如果有多个任务,可以定义一个任务来执行它们:

desc "Remove Unix and Windows backup files"
task :delete_backups =>[ :delete_unix_backups, :delete_windows_backups ] do
  puts "All backups deleted"
end

 上面的task方法,接收一个hash作为参数,它的key是任务名,value就是另外两个任务的列表。

对上面的代码进行重构,将删除的逻辑共用抽出来。

def delete(pattern)
  files = Dir[pattern]
  rm(files, verbose: true) unless files.empty?
end

desc "Remove files whose names end with a tilde"
task :delete_unix_backups do
  delete "*~"
end

desc "Remove files with a .bak extension"
task :delete_windows_backups do
  delete "*.bak"
end

desc "Remove Unix and Windows backup files"
task :delete_backups => [ :delete_unix_backups, :delete_windows_backups ] do
  puts "All backups deleted"
end

 如果Rake任务的名称叫default,在执行rake命令不输入参数时,会执行这个任务。

 

$rake -T 命令列出所有任务。

 

Martin Fowler写的关于rake的文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值