2012-04-10 102 views
0

我有一個Ruby 1.9.3項目下面的Rakefile:通過.rake文件rake任務

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.raketasks/omglol/file_b.rake

有沒有最好的方法來做到這一點?謝謝。

回答

3

是的。只需將邏輯移動到適當的文件中,然後將它們移到require即可。

例Rake文件:

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相同。