2016-07-19 3 views
0

rake 태스크에 인수를 전달하는 방법을 알고 있지만 종속 태스크에 인수를 전달하는 방법을 생각할 수 없습니다.레이크 의존성에 인수 전달

task foo [:alpha, :bravo, :charlie, :delta] 

내가 작업이 :omega라는 추가해야합니다 :

난 그냥 따라 작업 목록을 실행하는 작업이

task foo [:omega, :alpha, :bravo, :charlie, :delta] 

을하지만 그것을 매개 변수를 전달해야합니다. 매개 변수를 전달하지 않으려합니다. foo - 매개 변수를 종속 작업에 하드 코딩해야합니다. 이 작업을 수행하고 싶습니다 (유효하지 않음을 알고 있습니다).

task foo [:omega('Some Param'), :alpha, :bravo, :charlie, :delta] 

매개 변수를 전달하는 방법은 무엇입니까?

답변

0

레이크 그래서 나는 당신이 위의

당신이 달성하려고하는 무엇을 더 설명 할 수 달성 할 수있을 것입니다 의심 ... 당신의 작업을 실행하기 전에 모든 "의존"작업을 실행할 수 있습니까? 예를 들어

Jusy 작업은 당신이

def confirmDestruction 
    print "Are you sure you want to do that?\n" 
    answer=gets() 
    if answer == 'y' 
     return true 
    else 
     exit 0 
    end 
end 

task :omega do 
    $conrimedDestruction = confirmDestruction if $conrimedDestruction.nil? 
    if $conrimedDestruction 
    print "${$omegaVar}\n" 
    else 
    print "non destructive functionality\n" 
    end 
end 

task :alpha do 
    if $conrimedDestruction 
    print "${$omegaVar}\n" 
    else 
    print "non destructive functionality\n" 
    end 
end 
task :foo => [:omega, :alpha, :bravo, :charlie, :delta] 
+0

내가 확인은 간단한 작업이 당신의 코드에서 다음

rake foo omegaVar 

을 할 수 있습니다 명령 줄에서 실행되는 경우 step - 사용자가 확인하기 위해 y를 입력하고 레이크가 종료하는 다른 내용을 입력했는지 여부. 이 작업을 여러 장소에서 사용하지만 현재 메시지는 일반적인 '파괴적 행동 확인'입니다. 메시지를 사용할 때마다 메시지를 전달하여 사용하는 장소에 따라 메시지를 전달할 수있는 방법이 필요합니다. – Undistraction

+0

만약 내가 이것을 구현했다면 나는 확인을위한 태스크 대신에 함수/메소드를 만들 것이다. 확인을 원할 때마다 함수/메소드를 호출하십시오. 전역 변수를 설정했다면, 한 번 설정할 수 있습니다. 모든 작업은 확인 함수가 호출되었는지 확인하고, 그렇지 않으면 파괴 작업을 실행합니다. 그런 다음 전역 변수를 지울 수있는 함수가 있어야합니다. –

+0

무슨 뜻인지 설명해 주시겠습니까? 어떻게하면 다음과 같은 작업을 할 수 있을까요?'task foo [: alpha, : bravo, : charlie, : delta]' – Undistraction