`

Ruby'Rake Build Tool

    博客分类:
  • Ruby
阅读更多

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的文章

分享到:
评论

相关推荐

    Ruby Pocket Reference

    - **RubyGems and Rake:** The book also includes information on RubyGems, a package management system for Ruby, and Rake, a build tool similar to make. In summary, "Ruby Pocket Reference" is an ...

    车票

    门票 安装ruby-假设为macOS 我已经使用Ruby 2.7.2开发了它。 应该可以编辑.ruby-version ,将2.7.2更改为计算机上安装的任何ruby版本(使用ruby --...ruby ./search_tool.rb -keys users可以用用户代替tickets和o

    lti_tool_provider_example:这是一个基本且简单的 LTI 工具提供程序,它使用 [ims-lti](https

    使用 ims-lti Gem 的示例 LTI 工具提供程序 ... docker-compose build docker-compose run --rm app bundle install docker-compose run --rm app bundle exec rake db:create docker-compose run --rm app bundle e

    toys:用于构建和工作流程自动化的可配置命令行工具

    使用简单的DSL在Ruby中编写命令,Toys将提供命令行可执行文件,并处理所有详细信息,例如参数解析,在线帮助和错误报告。 Toys专为希望编写和组织脚本以使其工作流程自动化的软件开发人员,IT专业人员和其他高级...

    扫帚:开发人员的磁盘清理实用程序

    5. **SBT (Simple Build Tool)**:这是Scala项目的构建工具,类似于Java的Maven。SBT在构建过程中会产生大量的临时文件,扫帚可能提供清理.sbt目录的选项。 6. **Gradle**:Gradle是另一种灵活的构建自动化系统,...

Global site tag (gtag.js) - Google Analytics