2007年12月20日

[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 <hajimehoshi@xxxxx>

投稿者 xml-rpc : 2007年12月20日 15:27
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/67817
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。