Ruby Language
소스 파일로드
수색…
파일을 한 번만로드하도록 요구하십시오.
Kernel # require 메소드는 파일을 한 번만로드합니다 ( require
를 여러 번 호출하면 해당 파일의 코드가 한 번만 평가됩니다). 매개 변수가 절대 경로가 아닌 경우 루비 $LOAD_PATH
를 검색하여 필요한 파일을 찾습니다. .rb
, .so
, .o
또는 .dll
과 같은 확장자는 선택 사항입니다. 상대 경로는 프로세스의 현재 작업 디렉토리로 해석됩니다.
require 'awesome_print'
Kernel # require_relative를 사용하면 require_relative
가 호출 된 파일을 기준으로 파일을로드 할 수 있습니다.
# will search in directory myproj relative to current source file.
#
require_relative 'myproj/version'
자동으로 소스 파일로드
Kernel#autoload
메소드는 모듈 (String 또는 심볼 일 수 있음)에 처음 액세스 할 때로드 할 파일 이름 ( Kernel::require
)을 등록합니다.
autoload :MyModule, '/usr/local/lib/modules/my_module.rb'
방법 커널 # autoload? name이 autoload
로 등록되면로드 할 파일 이름을 반환합니다.
autoload? :MyModule #=> '/usr/local/lib/modules/my_module.rb'
옵션 파일로드
파일을 사용할 수없는 경우, require
가족은 발생합니다 LoadError
. 이것은 선택적 모듈이있을 경우에만로드하는 예제입니다.
module TidBits
@@unavailableModules = []
[
{ name: 'CoreExtend', file: 'core_extend/lib/core_extend' } \
, { name: 'Fs' , file: 'fs/lib/fs' } \
, { name: 'Options' , file: 'options/lib/options' } \
, { name: 'Susu' , file: 'susu/lib/susu' } \
].each do |lib|
begin
require_relative lib[ :file ]
rescue LoadError
@@unavailableModules.push lib
end
end
end # module TidBits
반복적으로 파일로드
Kernel # load 메소드는 주어진 파일의 코드를 평가합니다. 검색 경로는 require
와 같이 구성됩니다. require
와 달리 이후의 모든 호출에서 해당 코드를 다시 평가 require
. load_relative
는 없습니다.
load `somefile`
여러 파일로드 중
루비 기법을 사용하여로드 할 파일 목록을 동적으로 만들 수 있습니다. 알파벳 순서로로드 된 test
시작하는 파일에 대한 globbing의 그림.
Dir[ "#{ __dir__ }**/test*.rb" ) ].sort.each do |source|
require_relative source
end
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow