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 命令列出所有任务。
相关推荐
- **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
使用 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
使用简单的DSL在Ruby中编写命令,Toys将提供命令行可执行文件,并处理所有详细信息,例如参数解析,在线帮助和错误报告。 Toys专为希望编写和组织脚本以使其工作流程自动化的软件开发人员,IT专业人员和其他高级...
5. **SBT (Simple Build Tool)**:这是Scala项目的构建工具,类似于Java的Maven。SBT在构建过程中会产生大量的临时文件,扫帚可能提供清理.sbt目录的选项。 6. **Gradle**:Gradle是另一种灵活的构建自动化系统,...