Rake

documents

taskのprerequisitesへの追加

task :name
task :name => [:prereq1]
task :name => [:prereq2]
task :name do |t|
  # アクション
end
  • なるほど.要するに何回もtaskを実行できて,それは追加されるのね.

taskのpost actionの定義

task :default do
  print "hello,"
end

task :default do
  print "bye\n"
end

要するに,一回目に定義した:defaultというtaskのすぐ後に実行してほしい taskを定義しようと思ったら,単にもう一度taskを実行すればいいということ.

taskの上書き

  • 後からtaskを消去して上書きしたい場合にはどうすればいいのか
task :install_gem do
  sh "sudo gem install pkg/*.gem"
end
  • これを上書きしたい.
# clear current task
module Rake
  class Task
    def clear_actions
      @actions.clear
    end
  end
end

# clear current task
t = Rake.application.lookup(:install_gem)
t.clear_actions if t

# redefine task
task :install_gem => [:clean, :package] do
  if /mswin32/ =~ RUBY_PLATFORM || /cygwin/ =~ RUBY_PLATFORM
    sh "gem.cmd install pkg/*.gem"	# for Cygwin
  else
    sh "sudo gem install pkg/*.gem"
  end
end
  • こんな感じでOK.
Last modified: 2007-06-16