2012-04-10 16 views
0

Ich habe folgendes Rakefile in einem Ruby 1.9.3 Projekt:A Rake Aufgabe durch .rake Datei

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 

Wie Sie sehen können, ist der erste Teil der Datei nicht gestattet Tests ausführen, mit nur rake Befehl . Und der zweite Teil enthält einige Aufgaben.

Eigentlich habe ich eine Menge Aufgaben in Omglol: file_a und omglol: file_b Namespaces. Deshalb würde ich gerne jeden von ihnen in eine Datei verschieben, zum Beispiel tasks/omglol/file_a.rake und tasks/omglol/file_b.rake.

Gibt es einen besten Weg dazu? Vielen Dank.

Antwort

3

Ja. Verschieben Sie einfach die Logik in die entsprechenden Dateien und dann require ihnen.

Beispiel 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 

Dann in lib/tasks/omglol/file_a.rake einfach Ihre Aufgaben als normal definieren:

namespace :omglol do 
    namespace :file_a do 
    task :foo do 
     # do some stuff 
    end 
    end 
end 

Das Muster das gleiche für file_b.rake wäre.