如何在Ruby脚本中运行Rake任务?

时间:2020-03-05 18:38:03  来源:igfitidea点击:

我有一个带有Rake任务的Rakefile,通常我会从命令行调用它:

rake blog:post Title

我想编写一个多次调用Rake任务的Ruby脚本,但是我看到的唯一解决方案是使用``(反引号)或者system

什么是正确的方法?

解决方案

回答

来自timocracy.com:

require 'rake'
require 'rake/rdoctask'
require 'rake/testtask'
require 'tasks/rails'

def capture_stdout
  s = StringIO.new
  oldstdout = $stdout
  $stdout = s
  yield
  s.string
ensure
  $stdout = oldstdout
end

Rake.application.rake_require '../../lib/tasks/metric_fetcher'
results = capture_stdout {Rake.application['metric_fetcher'].invoke}