모듈: Mongoid::Loadable
- 포함 항목:
- 몽고이드
- 다음에 정의됨:
- lib/mongoid/loadable.rb
개요
Mongoid가 정의된 모든 모델을 자동으로 로드하는 방법을 정의합니다.
상수 요약 접기
- DEFAULT_Model_PATHS =
모델 클래스를 찾아야 하는 기본값 경로 목록입니다. Rails가 있는 경우 ' 앱/models' 경로가 대신 사용됩니다. (#model_paths 참조).
%w( ./app/models ./lib/models ).동결
- DEFAULT_IGNORE_PATTERNS =
모델을 로드할 때 무시할 경로와 일치하는 glob 패턴의 기본값 목록입니다. 기본값은' /models/concerns/'이며, Rails가 모델 확장에 사용하며 순서가 맞지 않으면 오류가 발생합니다.
#ignore_patterns를 참조하세요.
%w( */models/concerns/* ).동결
인스턴스 메서드 요약 접기
-
#files_under_path(경로) ⇒Array<String>
단일 경로가 주어지면 해당 경로 아래의 모든 Ruby 파일을 반환합니다(또는 'preload_models'가 모델 이름 목록인 경우 명명된 모델에 대한 파일만 반환).
-
#files_under_paths(paths) ⇒ Array<String>
경로 목록이 주어지면 해당 경로 아래의 모든 Ruby 파일을 반환합니다(또는 'preload_models'가 모델 이름 목록인 경우 명명된 모델에 대한 파일만 반환).
-
#ignore_patterns ⇒ Array<String>
모델 로더에서 지정된 경로를 무시할지 여부를 결정하는 glob 패턴 배열 을 반환합니다.
-
#ignore_patterns=(patterns) ⇒ 객체
무시 패턴을 지정된 패턴 배열 로 설정합니다.
-
#무시되었나요?(file_path) ⇒ true | false
지정된 파일 경로가 무시 패턴과 일치하는 경우 true를 반환합니다.
-
#load_model(파일) ⇒ 객체
비공개
모델의 파일 을 로드하기 위한 편리한 메서드입니다.
-
#load_models(paths = 모델_경로) ⇒ 객체
모델 경로 목록을 검색하여 모든 모델을 가져와서 요구하면 개발과 프로덕션 모두에서 인덱싱 과 상속이 동일한 결과를 얻도록 할 수 있습니다.
-
#모델 경로 ⇒ Array<String>
애플리케이션의 모델 정의가 있는 경로 배열 을 반환합니다.
-
# 모델_경로=(경로) ⇒ 객체
모델 경로를 지정된 경로 배열 로 설정합니다.
인스턴스 메서드 세부 정보
#files_under_path(경로)⇒ Array<String>
단일 경로가 주어지면 해당 경로 아래의 모든 Ruby 파일을 반환합니다(또는 'preload_models'가 모델 이름 목록인 경우 명명된 모델에 대한 파일만 반환).
63 64 65 66 67 68 69 70 71 72 73 74 75 |
# 파일 'lib/mongoid/loadable.rb', 63줄 def files_under_path(경로) SCons를 훈련 = 만약 preload_models.크기 조정 가능? preload_models. map { |모델| "#{경로}/#{모델.밑줄}.rb" }. SELECT { |file_name| file.존재합니까?(file_name) } other 디렉토리.glob("#{경로}/**/*.rb"). 거부 { |file_name| 무시됨?(file_name) } end # 각 항목에서 경로와 접미사를 제거합니다. SCons를 훈련.map { |파일| 파일.gsub(/^#{path}\// , "").gsub(/\.rb$/, "") } end |
#files_under_paths(paths) ⇒ Array<String>
경로 목록이 주어지면 해당 경로 아래의 모든 Ruby 파일을 반환합니다(또는 'preload_models'가 모델 이름 목록인 경우 명명된 모델에 대한 파일만 반환).
51 52 53 |
# 파일 'lib/mongoid/loadable.rb', 51줄 def files_under_paths(경로) 경로.flat_map { |경로| files_under_path(경로) } end |
#ignore_patterns ⇒ Array<String>
모델 로더에서 지정된 경로를 무시할지 여부를 결정하는 glob 패턴 배열 을 반환합니다.
115 116 117 |
# 파일 'lib/mongoid/loadable.rb', 115줄 def ignore_patterns @ignore_patterns ||= DEFAULT_IGNORE_PATTERNS.dup end |
#ignore_patterns=(patterns) ⇒ 객체
무시 패턴을 지정된 패턴 배열 로 설정합니다. 이는 모델 로더에서 지정된 경로를 무시할지 여부를 결정하는 glob 패턴입니다.
132 133 134 |
# 파일 'lib/mongoid/loadable.rb', 132줄 def ignore_patterns=(패턴) @ignore_patterns = 패턴 end |
#무시되었나요?(file_path) ⇒ true | false
지정된 파일 경로가 무시 패턴과 일치하는 경우 true를 반환합니다.
142 143 144 |
# 파일 'lib/mongoid/loadable.rb', 142줄 def 무시됨?(FILE_PATH) ignore_patterns.어떤? { |패턴| file.fnmatch?(패턴, FILE_PATH) } end |
#load_model(파일) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
모델의 파일 을 로드하기 위한 편리한 메서드입니다. Rails의 'require_dependency' 메서드가 존재하는 경우 해당 메서드가 사용됩니다. 그렇지 않으면 'require'가 사용됩니다.
87 88 89 90 91 92 93 |
# 파일 'lib/mongoid/loadable.rb', 87줄 def load_model(파일) 만약 정의됨?(require_dependency) require_dependency(파일) other require(파일) end end |
#load_models(paths = 모델_경로) ⇒ 객체
모델 경로 목록을 검색하여 모든 모델을 가져와서 요구하면 개발과 프로덕션 모두에서 인덱싱 과 상속이 동일한 결과를 얻도록 할 수 있습니다.
33 34 35 36 37 38 39 40 41 |
# 파일 'lib/mongoid/loadable.rb', 33줄 def load_models(경로 = 모델 경로) SCons를 훈련 = files_under_paths(경로) SCons를 훈련.sort.각 do |파일| load_model(파일) end nil end |
#모델 경로 ⇒ Array<String>
애플리케이션의 모델 정의가 있는 경로 배열 반환합니다. Rails가 로드되면 기본적으로 구성된 '앱/models' 경로(예: 'config.paths')가 사용됩니다. 그렇지 않으면 기본값은 '%w(./앱/models ./lib/models)'입니다.
이러한 경로는 모델이 있는 디렉토리 계층 구조의 루트 입니다. 이러한 루트 경로가 '$LOAD_PATH`에 있는 한 모든 하위 디렉토리를 표시할 필요는 없습니다.
105 106 107 108 109 |
# 파일 'lib/mongoid/loadable.rb', 105줄 def 모델 경로 @model_paths ||= 정의됨?(Rails) ? Rails.애플리케이션.config.경로["앱/models"]. : DEFAULT_Model_PATHS end |
# 모델_경로=(경로) ⇒ 객체
모델 경로를 지정된 경로 배열 로 설정합니다. 이는 애플리케이션의 모델 정의가 있는 경로입니다.
123 124 125 |
# 파일 'lib/mongoid/loadable.rb', 123줄 def 모델 경로=(경로) @model_paths = 경로 end |