在 ruby 代码中调用带命名空间的 rake 任务
Invoke namespaced rake task in ruby code
给出一些 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
您调用的任务不正确 - 将任务名称作为字符串传递:
Rake::Task['tmp:some_task'].invoke
接受的答案是正确的。但是,从 rails 开始,从 Rails 调用任何 rake 任务。您需要先加载它们。
require 'rake'
Rails.application.load_tasks
Rake::Task['my_task'].invoke
给出一些 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
您调用的任务不正确 - 将任务名称作为字符串传递:
Rake::Task['tmp:some_task'].invoke
接受的答案是正确的。但是,从 rails 开始,从 Rails 调用任何 rake 任务。您需要先加载它们。
require 'rake'
Rails.application.load_tasks
Rake::Task['my_task'].invoke