클래스: Mongoid::PersistenceContext
개요
컬렉션 및 데이터베이스 이름과 모델을 유지할 때 사용할 특정 옵션이 있는 클라이언트 를 설정/가져오기 위한 객체 캡슐화 로직입니다.
상수 요약 접기
- EXTRA_OPTIONS =
지속성 컨텍스트를 결정하는 운전자 클라이언트 옵션 외에 추가 옵션입니다.
[ :client, :collection ].동결
- VALID_OPTIONS =
유효한 지속성 컨텍스트 옵션의 전체 목록입니다.
( mongo::고객::VALID_OPTIONS + EXTRA_OPTIONS ).동결
인스턴스 속성 요약 접기
-
옵션 #개 ⇒ 해시
읽기 전용
이 지속성 컨텍스트를 정의하는 옵션입니다.
클래스 메서드 요약 접기
-
.clear(객체, 클러스터 = nil, original_context = nil) ⇒ Object
특정 클래스 또는 모델 인스턴스에 대한 지속성 컨텍스트를 지웁니다.
-
.get(객체) ⇒ Mongoid::PersistenceContext
특정 클래스 또는 모델 인스턴스 에 대한 지속성 컨텍스트를 가져옵니다.
-
.설정하다(객체, options_or_context) ⇒ Mongoid::PersistenceContext
특정 클래스 또는 모델 인스턴스에 대한 지속성 컨텍스트를 설정합니다.
인스턴스 메서드 요약 접기
-
#==(기타) ⇒ true | false
이 지속성 컨텍스트가 다른 지속성 컨텍스트와 동일한지 확인합니다.
-
#클라이언트 ⇒ Mongo::Client
이 지속성 컨텍스트에 대한 클라이언트 를 가져옵니다.
-
#client_name ⇒ Symbol
이 지속성 컨텍스트에 대한 클라이언트 이름을 가져옵니다.
-
#컬렉션(parent = nil) ⇒ Mongo::Collection
이 지속성 컨텍스트에 대한 컬렉션 을 가져옵니다.
-
#collection_name ⇒ string
이 지속성 컨텍스트에 대한 컬렉션 이름을 가져옵니다.
-
#database_name ⇒ string
이 지속성 컨텍스트의 데이터베이스 이름을 가져옵니다.
-
#for_child(문서) ⇒ PersistenceContext
비공개
가장 적절한 설정을 상속하여 지정된 하위 문서 와 일관적인 하는 새 지속성 컨텍스트를 반환합니다.
-
#initialize(object, opts = {}) ⇒ PersistenceContext
생성자
지속성 컨텍스트 객체를 초기화합니다.
-
#requests_storage_options ⇒ 해시 | nil
비공개
저장 옵션으로 사용할 수 있는 제공된 옵션의 하위 집합입니다.
-
#reusable_client? ⇒ true | false
비공개
컨텍스트의 클라이언트 가 나중에 재사용될 수 있으므로 닫지 않아야 하는지 여부입니다.
생성자 세부 정보
#initialize(객체, opts = {}) ⇒ PersistenceContext
지속성 컨텍스트 객체를 초기화합니다.
45 46 47 48 |
# 파일 'lib/mongoid/persistence_context.rb', 줄 45 def 초기화(객체, opts = {}) @ 객체 = 객체 (opts) end |
인스턴스 속성 세부 정보
#options ⇒ 해시 (읽기 전용)
이 지속성 컨텍스트를 정의하는 옵션입니다.
20 21 22 |
# 파일 'lib/mongoid/persistence_context.rb', 줄 20 def @options end |
클래스 메서드 세부 정보
.clear(객체, 클러스터 = nil, original_context = nil) ⇒ Object
특정 클래스 또는 모델 인스턴스에 대한 지속성 컨텍스트를 지웁니다.
267 268 269 270 271 272 273 274 275 |
# 파일 'lib/mongoid/persistence_context.rb', 줄 267 def 지우기(객체, cluster = nil, original_context = nil) 만약 컨텍스트 = get(객체) 하지 않는 한 cluster.nil? || 컨텍스트.cluster.같음?(cluster) 컨텍스트.고객.닫기 하지 않는 한 컨텍스트.reusable_client? end end 보장 store_context(객체, original_context) end |
.get(객체) ⇒ Mongoid::PersistenceContext
특정 클래스 또는 모델 인스턴스 에 대한 지속성 컨텍스트를 가져옵니다.
254 255 256 |
# 파일 'lib/mongoid/persistence_context.rb', 줄 254 def get(객체) get_context(객체) end |
.set(객체, options_or_context) ⇒ Mongoid::PersistenceContext
특정 클래스 또는 모델 인스턴스에 대한 지속성 컨텍스트를 설정합니다.
지속성 컨텍스트 설정하다 가 이미 있는 경우 기존 컨텍스트의 옵션이 설정하다 호출에 지정된 옵션과 결합됩니다.
231 232 233 234 235 236 237 238 239 240 241 242 243 244 |
# 파일 'lib/mongoid/persistence_context.rb', 줄 231 def 세트(객체, ) 기존_컨텍스트 = get_context(객체) = 만약 기존_컨텍스트 기존_컨텍스트. other {} end 만약 .is_a?(PersistenceContext) = . end = .merge() 컨텍스트 = PersistenceContext.신규(객체, ) store_context(객체, 컨텍스트) end |
인스턴스 메서드 세부 정보
#==(기타) ⇒ true | false
이 지속성 컨텍스트가 다른 지속성 컨텍스트와 동일한지 확인합니다.
150 151 152 153 |
# 파일 'lib/mongoid/persistence_context.rb', 줄 150 def ==(기타) 반환 거짓 하지 않는 한 기타.is_a?(PersistenceContext) == 기타. end |
#클라이언트 ⇒ Mongo::Client
이 지속성 컨텍스트에 대한 클라이언트 를 가져옵니다.
116 117 118 119 120 121 122 123 124 125 126 127 |
# 파일 'lib/mongoid/persistence_context.rb', 줄 116 def 고객 @client ||= 시작 고객 = 클라이언트.with_name(client_name) 만약 database_name_option 고객 = 고객.메서드를(database_name) end 하지 않는 한 .비어 있나요? 고객 = 고객.와() end 고객 end end |
#client_name ⇒ Symbol
이 지속성 컨텍스트에 대한 클라이언트 이름을 가져옵니다.
136 137 138 139 140 |
# 파일 'lib/mongoid/persistence_context.rb', 줄 136 def client_name @client_name ||= [:client] || 스레드.client_override || __evaluate__([:client]) end |
#컬렉션(parent = nil) ⇒ Mongo::Collection
이 지속성 컨텍스트에 대한 컬렉션 을 가져옵니다.
80 81 82 83 84 |
# 파일 'lib/mongoid/persistence_context.rb', 줄 80 def 컬렉션(부모 = nil) 부모 ? 부모.컬렉션.와(.~을 제외하고(:database, "database")) : 고객[collection_name.to_sym] end |
#collection_name ⇒ string
이 지속성 컨텍스트에 대한 컬렉션 이름을 가져옵니다.
93 94 95 96 |
# 파일 'lib/mongoid/persistence_context.rb', 줄 93 def collection_name @collection_name ||= (__evaluate__([:collection] || [:collection])) end |
#database_name ⇒ string
이 지속성 컨텍스트의 데이터베이스 이름을 가져옵니다.
105 106 107 |
# 파일 'lib/mongoid/persistence_context.rb', 줄 105 def database_name __evaluate__(database_name_option) || 고객.database.이름 end |
#for_child(문서) ⇒ PersistenceContext
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
가장 적절한 설정을 상속하여 지정된 하위 문서 와 일관적인 하는 새 지속성 컨텍스트를 반환합니다.
58 59 60 61 62 63 64 65 66 67 68 |
# 파일 'lib/mongoid/persistence_context.rb', 줄 58 def for_child(문서) 만약 문서.is_a?(클래스) 반환 self 만약 문서 == (@ 객체.is_a?(클래스) ? @ 객체 : @ 객체.클래스) elsif 문서.is_a?(몽고이드::문서) 반환 self 만약 문서.클래스 == (@ 객체.is_a?(클래스) ? @ 객체 : @ 객체.클래스) other 올리다 ArgumentError, '반드시 클래스 또는 문서 인스턴스 를 지정해야 합니다.' end PersistenceContext.신규(문서, .merge(문서.)) end |
#requests_storage_options ⇒ 해시 | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
저장 옵션으로 사용할 수 있는 제공된 옵션의 하위 집합입니다.
177 178 179 180 |
# 파일 'lib/mongoid/persistence_context.rb', 줄 177 def 슬라이스 = @options.슬라이스(*몽고이드::클라이언트::유효성 검사기::스토리지::VALID_OPTIONS) 슬라이스.어떤? ? 슬라이스 : nil end |
#reusable_client? ⇒ true | false
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
컨텍스트의 클라이언트 가 나중에 재사용될 수 있으므로 닫지 않아야 하는지 여부입니다.
클라이언트 옵션만 사용하여 지속성 컨텍스트를 요청하는 경우, 해당 컨텍스트는 mongoid.yml에 구성된 클라이언트 를 사용해야 함을 의미합니다. 이러한 클라이언트는 나중에 재사용되므로 컨텍스트가 지워질 때 닫지 않아야 합니다.
166 167 168 |
# 파일 'lib/mongoid/persistence_context.rb', 줄 166 def reusable_client? @options.키 == [:client] end |