0

我在 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命令。第二部分包含一些任务。

实际上,我在 omgol:file_a 和 omgol:file_b 命名空间中有很多任务。这就是为什么我想将它们中的每一个移动到一个文件中,例如tasks/omglol/file_a.raketasks/omglol/file_b.rake.

有没有最好的方法呢?谢谢。

4

1 回答 1

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 的模式相同。

于 2012-08-07T22:49:20.843 回答