Ruby에서 ~를 사용하여 File의 존재 여부를 확인하고 싶을 때가 있다.
아래와 같이 File.file api를 사용해 파일 존재 여부를 확인하는 코드를 짰지만, 동작되지 않았다.
if File.file?('~/job_name')
phase = `cat ~/job_name`.strip
else
phase = "develop"
end
아래와 같은 코드는 동작된다. 하지만, 절대 path와 상대 path 둘 다 사용하는 형태라서 어색하다.
if File.file?('/Users/samuel.kim/job_name')
phase = `cat ~/job_name`.strip
else
phase = "develop"
end
home 디렉토리를 의미하는 ~와 함께 사용할 떄는 File.expand_path를 써야 의도된 대로 동작한다.
if (File.exist? File.expand_path "~/job_name")
phase = `cat ~/job_name`.strip
else
phase = "develop"
end
'Ruby' 카테고리의 다른 글
[capistrano] 다른 task 호출하기 (0) | 2016.12.07 |
---|---|
ruby on rails 애플리케이션 실행하기 (0) | 2016.10.12 |
[ruby] or equals 기능 - ||= (0) | 2016.08.17 |
[ruby] difference, union, intersection (0) | 2016.08.17 |
[ruby] 타입(type) 알기 (0) | 2016.08.17 |