1
나는 레일스가 : root/app 디렉토리의 경로를 자동으로로드하는 방법을 정말 좋아합니다. 루비 자동로드를 사방에 사용하는 것보다는 내가 만드는 보석에서 비슷한 것을하고 싶습니다.보석의 자동로드 경로 기능 얻기
나는 레일스가 : root/app 디렉토리의 경로를 자동으로로드하는 방법을 정말 좋아합니다. 루비 자동로드를 사방에 사용하는 것보다는 내가 만드는 보석에서 비슷한 것을하고 싶습니다.보석의 자동로드 경로 기능 얻기
Autoload은 모듈에서 심볼 또는 문자열로 매핑을 파일 이름으로 정의합니다.
디렉토리의 모든 파일을 자동로드하려면 파일을 열지 않고 파일이 나타내는 모듈을 알아야합니다.
명명 규칙을 따르면됩니다.
이libdirs = File.join("**", "lib")
Dir.glob(libdirs).each{ |filename|
autoload(filename_to_module(filename), filename)
}
내 filename_to_module
에 String#camelize
같은 것을 사용하십시오 : 당신이 방법 filename_to_module
에서 국제 대회를 캡슐화 가정, 당신이 오직 할 필요가있는 폴더를 통해 재귀 적으로 반복하고 같은 autoload(filename_to_module(filename), filename)
뭔가를 호출입니다 기능. 난 이미 ActiveSupport
에 대한 의존성이 없다면 직접 구현할 것입니다.
바꾸려는 코드의 예를 들어주세요. –
폴더에서 모든 파일을로드하거나 파일이 변경되면 자동으로 다시로드하려고합니까? –
ruby autoload를 사용하여 폴더 계층의 모든 파일을로드하려고합니다. 그래서 파일을 필요로하지 않고, 상수가 호출 될 때 dir 구조에서 파일을 자동로드하려고합니다. –