3

新しい展開に vlad を使用し始めていますが、ローカル開発サーバーとリモート運用サーバーで同じタスクを使用できるようにするには、どのように設定するのが最善の方法でしょうか?

すべてをリモート タスクとして定義し、ドメイン変数を設定する dev/prod メソッドを用意して、 を呼び出すことを考えましrake dev/prod vlad:do_somethingたが、これは完全に間違っているように感じます。

私のタスクの多くは、ローカル サーバーと運用サーバーで実行するのに役立ちます。ローカル用に 1 つの「タスク」とリモート用に 1 つの「remote_task」を用意することで、繰り返しを避けたいと考えています。例えば

def do_something
  run "echo something"
end

task :do_something_dev
  do_something
end

remote_task do_something_prod
  do_something
end

何か足りないのでしょうか、それともローカル マシンとリモート マシンの両方で同じ rake タスクを使用するための唯一のオプションですか?

4

1 に答える 1

5

これはどう:

[:development, :test, :production].each do |environment|
  namespace environment do
    task :do_something do
      echo "do something on #{environment}"
    end
  end
end

これにより、次のことが得られます。

  • rake vlad:development:do_something
  • rake vlad:test:do_something
  • rake vlad:production:do_something

方法が 1 つしかない場合は、自分のやり方で行う方がおそらく冗長ではありません。しかし、メソッドが 2 つまたは 3 つあれば、オーバーヘッドは無視できます。

于 2010-07-20T10:04:31.270 に答える