From: Hajime Hoshi Date: 2007-12-20T15:27:27+09:00 Subject: [ruby-list:44371] Re: Rake改善プロジェクト るびきちさん 星です。ご意見ありがとうございます。 > > タスクごとの引数を渡せるようにする > > コマンド引数からタスクへ、引数を渡すことができる機能。 > > task :with_arg do > puts ENV['arg'] > end > > 環境変数で渡せます。 その方法もありますね。 ただその方法だと、 - グローバルになってしまう - 名前をつけなければならない という点が難点と思いました。 素直に、メソッドに引数をわたせる感覚で渡せるインターフェイスがほしいという 意見であると考えています。 > > Sake*1 > > 共通の Rakefile をどこかに置いておいて、それを取り込む機能。 > > importがあります。 import をかかずに、 rake コマンドの引数で共通 Rakefile の取り込みを行えたら 便利である、というアイデアです。 > > 親ディレクトリの Rakefile を継承 > > 上記の Sake と似ているが、親ディレクトリにある Rakefile を自動的に取り込む機能。 > > ディレクトリを上へたどるコードを書けばいいのでは? 上記の Sake と同じく、そのコードを不要にしたいというものです。 > > タスクの fire > > タスク内で、他の任意のタスクを起動する機能。たとえば、あるタスク実行後に他のタスク > > を起動したりすることができるようになる。 > > task :first do > puts "first" > Rake::Task[:second].invoke > end > > task :second do > puts "second" > end > > こうすればよいです。 たしかに、既存の invoke メソッドを使えばできますね。 問題点 (無限再帰呼び出しにならないかなど) を検討します。 > > 「もしかして」機能 > > タスク名をスペルミスしたときなどに、近い名前のタスクを提示してくれる機能。 > > これはシェルの補完でまかなえばいいと思います。 なるほど。 > > 「合わせて使いたい」 > > あわせて使いたいタスクを提示する機能。 > > よくわからないですがnamespaceで同じ名前空間に登録するとかじゃだめですか? タスクの使用頻度の高いものを提示するという Amazon の推薦書籍みたいな機能です。 ちょっとジョーク的ですが、面白い機能であると思い掲載いたしました。 > > 「この次はこれ」 > > 「あわせて使いたい」とほぼ同じ。次に頻出するタスクを提示する機能。 > > task :all => [:first, :second, :third] > で自動実行するのはだめですか?引数は環境変数で渡せますし。 これも上記とおなじく、推薦してくれる機能です。 > > 「やっときました」 > > 「この次はこれ」のタスクを勝手にやってくれる機能。 > > これこそ依存関係で指定できます。 上記と同じく、推薦してくれた上でそのタスクを行ってくれる機能です。 ジョーク的かもしれませんが。 > > gem を作るタスク > > gem パッケージを作るためのタスクを作る機能。 > > require 'rake/gempackagetask' > でしょう。あるいはhoeを使うか。 Rake 改善プロジェクトの wiki (http://wiki.fdiary.net/rails/?RakeImprovementProject) で もろはしさんが書かれているのですが、 「問答無用で成果物が hoe に依存する仕様」とのことで、問題点もありそうです。 検討いたします。 ありがとうございました。 -- Hajime Hoshi