클래스: Mongoid::ModelResolver
개요
판별 키를 기반으로 모델 클래스를 해석하기 위한 기본값 클래스입니다. 키가 주어지면 해당 모델 클래스가 있는 경우 이를 반환합니다. 기본값 으로 지정된 키와 일치하는 이름을 가진 클래스를 찾지만 추가 매핑이 제공될 수 있습니다.
여러 리졸버를 인스턴스화하고 직접 구현 다양한 클래스 세트가 독립적인 확인 메커니즘을 사용할 수도 있습니다.
상수 요약 접기
- INSTance_MUDEX =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
'를 만드는 데 사용되는 뮤텍스 인스턴스 . 인스턴스` 메서드는 스레드로부터 안전합니다.
뮤텍스.신규
클래스 메서드 요약 접기
-
. 인스턴스 ⇒ Mongoid::ModelResolver
ModelResolver의 기본값 인스턴스 반환합니다.
-
.Register_resolver(리졸버, 이름) ⇒ 객체
지정된 리졸버를 지정된 이름으로 등록합니다.
-
.resolver(identifier_or_object = : 기본값) ⇒ Mongoid::ModelResolver::Interface
인수에 해당하는 리졸버 인스턴스 반환합니다.
-
.resolvers ⇒ Hash<Symbol => Mongoid::ModelResolver::Interface>
등록된 리졸버의 맵을 반환합니다.
인스턴스 메서드 요약 접기
-
#initialize ⇒ ModelResolver
생성자
새 ModelResolver 인스턴스 인스턴스화합니다.
-
#Register(klass, *keys) ⇒ 객체
지정된 키를 사용하여 지정된 모델 클래스를 등록합니다.
생성자 세부 정보
#initialize ⇒ ModelResolver
새 ModelResolver 인스턴스 인스턴스화합니다.
75 76 77 78 |
# 파일 'lib/mongoid/model_resolver.rb', 줄 75 def 초기화 @key_to_model = {} @model_to_keys = {} end |
클래스 메서드 세부 정보
. 인스턴스⇒ Mongoid::ModelResolver
ModelResolver의 기본값 인스턴스 반환합니다.
27 28 29 |
# 파일 'lib/mongoid/model_resolver.rb', 줄 27 def 인스턴스 @instance ||= INSTance_MUDEX.동기화 { @instance ||= 신규 } end |
.Register_resolver(리졸버, 이름) ⇒ 객체
지정된 리졸버를 지정된 이름으로 등록합니다.
68 69 70 71 |
# 파일 'lib/mongoid/model_resolver.rb', 줄 68 def Register_resolver(리졸버, 이름) 리졸버[이름.to_sym] = 리졸버 self end |
.resolver(identifier_or_object = : 기본값) ⇒ Mongoid::ModelResolver::Interface
인수에 해당하는 리졸버 인스턴스 반환합니다.
52 53 54 55 56 57 58 59 60 61 62 |
# 파일 'lib/mongoid/model_resolver.rb', 줄 52 def 리졸버(Identifier_or_object = :default) case Identifier_or_object when nil, 거짓 then nil when true, :default then 인스턴스 when 문자열, 기호 리졸버.가져오기(Identifier_or_object.to_sym) do |키| 올리다 몽고이드::오류::UnrecognizedResolver, 키 end other Identifier_or_object end end |
.resolvers ⇒ Hash<Symbol => Mongoid::ModelResolver::Interface>
등록된 리졸버의 맵을 반환합니다. 기본값 해석기는 여기에 포함되지 않습니다.
36 37 38 |
# 파일 'lib/mongoid/model_resolver.rb', 줄 36 def 리졸버 @resolvers ||= {} end |
인스턴스 메서드 세부 정보
#Register(klass, *keys) ⇒ 객체
지정된 키를 사용하여 지정된 모델 클래스를 등록합니다. 지정된 키 외에도 클래스 이름 자체가 클래스를 식별하는 키로 포함됩니다. 키가 우선 순위 순위에 따라 지정되며, 우선 순위 가장 높은 키가 먼저 표시되고 가장 낮은 키가 나중에 표시됩니다. 클래스 이름은 명시적으로 지정하지 않으면 항상 가장 낮은 우선 순위 부여됩니다.
두 번 이상 호출하면 최신 키가 이전 키보다 우선 순위 높습니다. 모든 중복 키가 제거됩니다.
90 91 92 93 94 95 96 97 98 99 100 101 |
# 파일 'lib/mongoid/model_resolver.rb', 줄 90 def 등록(class, *키) default_key = class.이름 @model_to_keys[class] = [ *키, *@model_to_keys[class], default_key ].uniq @key_to_model[default_key] = class 키.각 do |키| @key_to_model[키] = class end self end |