[#44310] プログラムに対して意図したとおりの文字列を渡す方法 — "Information Kanasansoft" <kanasansoft@...>

kanasanです。

9 messages 2007/12/05

[#44332] クラス:相互参照系の作成方法について質問です — "Saburoh Sakai" <sabroh@...>

はじめまして、さかいと申します。

12 messages 2007/12/11

[#44366] Rake改善プロジェクト — "Hajime Hoshi" <hajimehoshi@...>

東京大学修士 1 年の星一と申します。

14 messages 2007/12/19

[ruby-list:44368] Re: Rake改善プロジェクト

From: rubikitch@...
Date: 2007-12-19 20:13:42 UTC
List: ruby-list #44368
るびきちです。

具体例がないので的を外しているかもしれません。

> タスクごとの引数を渡せるようにする
>   コマンド引数からタスクへ、引数を渡すことができる機能。

task :with_arg do
  puts ENV['arg']
end

環境変数で渡せます。
こんなRakefileで
$ rake with_arg arg=hoge
とやると
hoge
と表示されます。

実際に僕自身がこんな感じでパッケージ内をegrepするタスクを運用しています。
$ rake egrep q=query

> Sake*1
>   共通の Rakefile をどこかに置いておいて、それを取り込む機能。

importがあります。

> 親ディレクトリの Rakefile を継承
>   上記の Sake と似ているが、親ディレクトリにある Rakefile を自動的に取り込む機能。

ディレクトリを上へたどるコードを書けばいいのでは?

> タスクの fire
>   タスク内で、他の任意のタスクを起動する機能。たとえば、あるタスク実行後に他のタスク
>   を起動したりすることができるようになる。

task :first do
  puts "first"
  Rake::Task[:second].invoke
end

task :second do
  puts "second"
end

こうすればよいです。

$ rake first
first
second

> 「もしかして」機能
>   タスク名をスペルミスしたときなどに、近い名前のタスクを提示してくれる機能。

これはシェルの補完でまかなえばいいと思います。

> 「合わせて使いたい」
>   あわせて使いたいタスクを提示する機能。

よくわからないですがnamespaceで同じ名前空間に登録するとかじゃだめですか?

> 「この次はこれ」
>   「あわせて使いたい」とほぼ同じ。次に頻出するタスクを提示する機能。

task :all => [:first, :second, :third]
で自動実行するのはだめですか?引数は環境変数で渡せますし。

> 「やっときました」
>   「この次はこれ」のタスクを勝手にやってくれる機能。

これこそ依存関係で指定できます。

> gem を作るタスク
>   gem パッケージを作るためのタスクを作る機能。

require 'rake/gempackagetask'
でしょう。あるいはhoeを使うか。

--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/

In This Thread