25

環境変数を使用せずに名前付き引数を Rake タスクに渡す方法はありますか?

Rake タスクが 2 つの形式で引数を受け入れることができることは承知しています。

環境変数

$ rake my_task foo=bar

これにより、Rake タスクで によってアクセスできる名前fooと値を持つ環境変数が作成されます。barmy_taskENV['foo']

Rake タスクの引数

$ rake my_task['foo','bar']

fooこれにより、値barが最初の 2 つのタスク引数 (定義されている場合) に渡されます。my_task次のように定義されている場合:

task :my_task, :argument_1, :argument_2

thenargument_1は value を持ち、 valuefooargument_2持ちますbar

4

1 に答える 1

29

次のように言えます。

rake some_task -- --arg=value

そして、あなたの仕事の中でARGV

[ 'some_task', '--arg=value' ]

そのため、古い CLI スクリプトと同じように、OptionParser (またはその他のオプション パーサー) を使用して展開できます。rake が rake スイッチとして解析しようとするのを防ぐにはARGV、変な見た目が必要です。----arg=like

おそらく、標準の環境変数アプローチの方が良いでしょう。それはすべての--ものほど醜くなく、rake タスクに引数を渡す通常の方法です。

于 2011-02-23T03:19:46.023 に答える