给出一些ruby文件foo.rb
:
require 'rake'
namespace :tmp do
desc "Foo bar baz.."
task :some_task do
puts "running some task..."
end
end
如何在ruby中调用命名空间任务tmp:some_task
任务?
我试过了:
require_relative 'foo'
#=> true
Rake::Task[tmp:some_task].invoke
#=> NameError: undefined local variable or method `some_task' for main:Object
答案 0 :(得分:2)
您正在正确调用该任务 - 将任务名称作为字符串传递:
Rake::Task['tmp:some_task'].invoke
答案 1 :(得分:0)
接受的答案是正确的。但是,从Rails,可以从Rails调用任何rake任务。您需要先加载它们。
require 'rake'
Rails.application.load_tasks
Rake::Task['my_task'].invoke