我在Ruby 1.9.3项目中有以下Rakefile:
require 'rake/testtask'
require 'json'
Rake::TestTask.new do |t|
t.pattern = "spec/**/*_spec.rb"
t.verbose = true
end
task :default => :test
namespace :omglol do
namespace :file_a do
task :foo do
# do some stuff
end
end
namespace :file_b do
task :bar do
# do some stuff
end
end
end
如您所见,此文件的第一部分允许仅使用rake
命令运行测试。第二部分包含一些任务。
实际上,我在omglol中有很多任务:file_a和omglol:file_b命名空间。这就是为什么我想在文件中移动每个文件,例如tasks/omglol/file_a.rake
和tasks/omglol/file_b.rake
。
有最好的方法吗?感谢。
答案 0 :(得分:3)
是。只需将逻辑移动到适当的文件中,然后require
将它们移动。
示例Rakefile:
require 'rake/testtask'
require 'json'
require 'lib/tasks/omglol/file_a.rake' # <= contains your subtasks
Rake::TestTask.new do |t|
t.pattern = "spec/**/*_spec.rb"
t.verbose = true
end
task :default => :test
然后在lib/tasks/omglol/file_a.rake
中简单地定义您的任务:
namespace :omglol do
namespace :file_a do
task :foo do
# do some stuff
end
end
end
file_b.rake的模式相同。