MerbのRakeタスク間の依存関係が知りたかったので、調べてみました。

   1  app <= [slices:merb-auth-slice-password:freeze:app_with_gem]
   2  clobber_coverage <= [spec:clobber, spec:coverage]
   3  copy_assets <= [slices:merb-auth-slice-password:install]create <= [db:reset]
   4  db:migrate:up <= [db:migrate]
   5  drop <= [db:reset]
   6  env <= [slices:list]
   7  freeze:app <= [slices:merb-auth-slice-password:freeze]
   8  freeze:views <= [slices:merb-auth-slice-password:patch]
   9  gem <= [slices:merb-auth-slice-password:freeze:app_with_gem]
  10  load <= [db:migrate:down, db:migrate:up]
  11  merb_env <= [audit:actions, audit:controllers, audit:routes, db:automigrate, db:
  12  autoupgrade, db:database_yaml, db:migrate:load, sessions:clear, sessions:create]
  13  migrate <= [db:reset, slices:merb-auth-slice-password:install]
  14  preflight <= [slices:merb-auth-slice-password:install]
  15  setup_directories <= [slices:merb-auth-slice-password:install]
  16  slices:list <= [slices]
  17  spec <= [default]
  18  spec:default <= [slices:merb-auth-slice-password:spec, spec]
  19  spec:explain <= [slices:merb-auth-slice-password:spec]
  20  stubs <= [slices:merb-auth-slice-password:patch]

右側が左側に依存してる感じです。 以下のようなコードをRakefileの末尾に記述して取得しました。

   1  tree = {}
   2  Rake::Task.tasks.each{|t| t.prerequisites.each{|r| (tree[r] ||= []) << t.name}}
   3  tree.sort_by{|i,j|i}.each{|r,a| puts "#{r} <= [#{a.sort.join(', ')}]"}

posted by Png genki on Fri 30 Jan 2009 at 03:07

Comments:

or Preview
Social Bookmarks
  • Delicious
  • B_entry1256
  • Clip_16_12_w
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ