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
Posted by '김용환'
,