MerbのRakeタスクの依存関係
MerbのRakeタスク間の依存関係が知りたかったので、調べてみました。
pre>>
app <= [slices:merb-auth-slice-password:freeze:app_with_gem]
clobber_coverage <= [spec:clobber, spec:coverage]
copy_assets <= [slices:merb-auth-slice-password:install]create <= [db:reset]
db:migrate:up <= [db:migrate]
drop <= [db:reset]
env <= [slices:list]
freeze:app <= [slices:merb-auth-slice-password:freeze]
freeze:views <= [slices:merb-auth-slice-password:patch]
gem <= [slices:merb-auth-slice-password:freeze:app_with_gem]
load <= [db:migrate:down, db:migrate:up]
merb_env <= [audit:actions, audit:controllers, audit:routes, db:automigrate, db:
autoupgrade, db:database_yaml, db:migrate:load, sessions:clear, sessions:create]
migrate <= [db:reset, slices:merb-auth-slice-password:install]
preflight <= [slices:merb-auth-slice-password:install]
setup_directories <= [slices:merb-auth-slice-password:install]
slices:list <= [slices]
spec <= [default]
spec:default <= [slices:merb-auth-slice-password:spec, spec]
spec:explain <= [slices:merb-auth-slice-password:spec]
stubs <= [slices:merb-auth-slice-password:patch]
<<--
右側が左側に依存してる感じです。
以下のようなコードをRakefileの末尾に記述して取得しました。
ruby>>
tree = {}
Rake::Task.tasks.each{|t| t.prerequisites.each{|r| (tree[r] ||= []) << t.name}}
tree.sort_by{|i,j|i}.each{|r,a| puts "#{r} <= [#{a.sort.join(', ')}]"}
<<--