2013-05-06 2 views
-1

나는 방법의 세 번째 매개 변수를 확인해야합니다루비 메소드 인수

나는 backupType을 저장할 경로를 확인하기 위해 if 문을 사용할
def NFS(configsHash, optionsHash, backupType) 

. 다음과 같이 입력하십시오 :

If #{backupType} == "dir/file/path/name/time" 
    STDOUT.puts("Backup will be saved to current folder.") 
else 
    STDOUT.puts("Putting into backup folder") 
    STDOUT.puts(mkdir #{backups}) 

그러나 구문을 올바르게 이해하지 못했습니다. 어떤 제안? 코멘트에

+4

우리가 들인 backuptype 객체가 무엇인지 알 수 없다, 그래서 당신을 위해 좋은 대답을 줄 수 없습니다. 또한 루비에서는 강력한 규칙으로 소문자에서 메서드 이름을 사용하고 낙타의 경우 대신 변수 이름에 밑줄을 사용해야합니다. – fotanus

+0

backupType은 문자열입니다. 조언 감사합니다! – fixdrift

+1

'mkdir' 작업을 위해서, 당신은 아마도 [FileUtils] (http://www.ruby-doc.org/stdlib-1.9.3/libdoc/fileutils/rdoc/FileUtils.html)를 사용하기를 원할 것입니다. 껍질. – tadman

답변

1
if backupType == "dir/file/path/name/time" 
    puts "Backup will be saved to current folder." 
else 
    puts "Putting into backup folder" 
    Dir.mkdir "path/goes/here" 
end 

STDOUT이 제거되었습니다. 그것은 불필요한 것입니다. STDOUT.puts.object_id 및 puts.object_id를 수행하면 동일한 내용을 참조합니다. 또한 Dir.mkdir임을 확인하십시오. 뿐만 아니라 mkdir; Dir 클래스에서 호출해야합니다.

좀 더 관용적 인 것으로 수정되었습니다. 나는 또한 Dir.mkdir의에서 puts를 떨어 뜨렸다. 나는 그것이 당신이 의도 한 것이 아니라고 생각합니다.

+0

죄송합니다. 포맷을 잊어 버렸습니다. – bigtunacan

+0

설명해 주셔서 감사합니다. 당신의 가정에서 맞습니다. – fixdrift

1
# Assuming that backupType is a string 
if backupType == "dir/file/path/name/time" 
    print "Backup will be saved to current folder." 
else 
    print "Putting into backup folder" 
    # This part below is tricky since I don't know what the backups variable is referring to 
    print Dir.mkdir backups 
end 

@fotanus은 명명 규칙에 큰 제안을한다,하지만 난 대답에 대해 동일한 이름을 유지 한 일관성을 보장 할 수 있습니다.

+0

예, backupType은 문자열입니다. – fixdrift

+1

문자열에'.eql? '을 사용하는 이유는 무엇입니까? 이것은 '배쉬'가 아닙니다. – tadman

+0

나쁜 습관. 내가 바꿀거야. – jason328

2

또한이 함께 갈 수는 :

case backupType 
when "dir/file/path/name/time" 
    puts("Backup will be saved to current folder.") 
else 
    puts("Putting into backup folder") 
    puts(Dir.mkdir backups) 
end