2011-09-15 8 views
0

私はRuby on RailsとCapistrano gemを使用しています。私はカピストラーノのレシピをDRY(自分自身を繰り返さないでください)したいと思います。だから、はどのように私は重複していないタスクを持っているので、上記のコードをカピストラーノのレシピを乾燥するには?

# First task 
task :first_task do 
    ... 

    run "cd #{current_path}; #{try_sudo} chmod -R 666 /log/production.log" 
end 

# Second task 
task :second_task do 
    run "..." 

    # The following code is equal to that stated in the first task. 
    run "cd #{current_path}; #{try_sudo} chmod -R 666 /log/production.log" 
end 

を乾燥させることができる:私が持っているdeploy.rbファイルで

答えて

4

カピストラーノコードは、ドメイン固有言語(DSL)とのちょうどルビーのコードであるので、あなたが行うことができる必要があります:

def chmod_log 
    run "cd #{current_path}; #{try_sudo} chmod -R 666 /log/production.log" 
end 

# First task 
task :first_task do 
    ... 

    chmod_log 
end 

# Second task 
task :second_task do 
    run "..." 

    # The following code is equal to that stated in the first task. 
    chmod_log 
end 
関連する問題