18

Rake タスクを変更して、既存のタスクを実行する前にコードを実行する簡単な方法はありますか? タスクの最後ではなく最初に実行される、強化に相当するものを探しています。

Rake::Task['lame'].enhance(['i_run_afterwards_ha_ha'])
4

2 に答える 2

38

Rake タスクの依存関係を使用してそれを行うことができ、Rake によって既存のタスクを再定義できるという事実があります。

Rakefile

task :your_task do
  puts 'your_task'
end
task :before do
  puts "before"
end
task :your_task => :before

結果として

$ rake your_task
before
your_task
于 2013-03-29T17:25:18.640 に答える
9

または、フックの前後に rake-hooks gem を使用することもできます。

https://github.com/guillermo/rake-hooks

namespace :greetings do 
    task :hola    do puts "Hola!" end ;
    task :bonjour do puts "Bonjour!" end ;
    task :gday    do puts "G'day!" end ;  
end 

before "greetings:hola", "greetings:bonjour", "greetings:gday" do
  puts "Hello!"
end

rake greetings:hola # => "Hello! Hola!" 
于 2013-08-28T10:48:06.070 に答える