기본적으로 "필요한"경로는 무엇입니까?
루비에서는 할 때
require "some_file"
Ruby는 특정 위치에서 파일을 찾습니다.
을 찾는다는 것을 알고 some_file.rb
있지만 기본적으로 어디에서 찾습니까?
그것은 당신의 플랫폼과 루비가 어떻게 컴파일되었는지에 따라 다르기 때문에 이에 대한 답은 없습니다. 다음을 실행하여 확인할 수 있습니다.
ruby -e 'puts $:'
그러나 일반적으로 각 아래에 arch, 버전 및 일반 디렉토리를 포함하여 표준, 사이트 및 공급 업체 Ruby 라이브러리 경로가 있습니다.
Ruby는 $LOAD_PATH
배열에 지정된 모든 경로를 찾습니다 .
다음과 같이 검색 할 디렉토리를 추가 할 수도 있습니다.
$LOAD_PATH.unshift File.expand_path('../path/from/this/file/to/another/directory', __FILE__)
RUBYLIB 환경 변수를 설정하여 추가 경로를 지정할 수 있습니다.
$ LOAD_PATH 전역 변수 ($ :라고도 함)에는 검색되는 디렉토리 목록이 포함됩니다.
참조 : http://www.ruby-doc.org/core-1.9.3/Kernel.html#method-i-require
require (string) => true 또는 false
Ruby는 string이라는 라이브러리를로드하려고 시도하며 성공하면 true를 반환합니다. 파일 이름이 절대 경로로 확인되지 않으면 $ :에 나열된 디렉토리에서 검색됩니다. 파일의 확장자가 ".rb"이면 소스 파일로로드됩니다. 확장자가 ".so", ".o"또는 ".dll"이거나 현재 플랫폼에있는 기본 공유 라이브러리 확장이 무엇이든간에 Ruby는 공유 라이브러리를 Ruby 확장으로로드합니다. 그렇지 않으면 Ruby는 이름에 ".rb", ".so"등을 추가하려고합니다. 로드 된 기능의 이름이 $ :의 배열에 추가됩니다.
ruby
명령 줄에서 호출 할 때 -I
인수를 사용하여 추가 검색 경로를 제공 할 수 있습니다 . 출력 비교
$ ruby -e 'puts $:'
출력
$ ruby -I /tmp -e 'puts $:'
두 번째 항목 /tmp
이 옵션으로 나열 되는 방법에 유의하십시오 . 다중 -I
을 사용 하여 다중 경로를 추가 할 수 있습니다 .
shebang과 함께 사용할 수도 있습니다.
#!/usr/bin/ruby -I /tmp -I /usr/local/lib/ruby
참조 URL : https://stackoverflow.com/questions/9474299/what-are-the-paths-that-require-looks-up-by-default
'UFO ET IT' 카테고리의 다른 글
sqlplus 열 출력 길이를 늘리는 방법은 무엇입니까? (0) | 2021.01.12 |
---|---|
박스 섀도우를 중화하는 방법? (0) | 2021.01.12 |
Chrome을 사용하여 쿠키를 어떻게 확인합니까? (0) | 2021.01.12 |
Xcode 현지화 설정에 더하기 또는 빼기 버튼 없음 (0) | 2021.01.12 |
텍스트 파일의 첫 번째 줄을 문자열로 바꿉니다. (0) | 2021.01.12 |