2012-04-10 2 views
0

У меня есть следующее Rakefile в проекте рубина 1.9.3:Многоотводная задача по .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 namespaces. Вот почему я хотел бы переместить каждый из них в файл, например tasks/omglol/file_a.rake и tasks/omglol/file_b.rake.

Есть ли лучший способ сделать это? Благодарю.

ответ

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.

Смежные вопросы