Class: CacheStore
- Inherits:
-
Object
- Object
- CacheStore
- Defined in:
- lib/mongoid_cache_store.rb
Instance Method Summary collapse
-
#cache_docs(doc_ids, doc_class, related_infos = []) ⇒ Object
[‘image_id’, klass: Users::ProfileImage].
- #document(doc_id, doc_class) ⇒ Object
-
#initialize ⇒ CacheStore
constructor
A new instance of CacheStore.
- #sorted_documents(doc_class, doc_ids = nil) ⇒ Object
- #valid_doc_ids(doc_class, doc_ids = nil) ⇒ Object
Constructor Details
#initialize ⇒ CacheStore
Returns a new instance of CacheStore.
8 9 10 11 12 |
# File 'lib/mongoid_cache_store.rb', line 8 def initialize @doc_ids_hash = {} = {} @documents = {} end |
Instance Method Details
#cache_docs(doc_ids, doc_class, related_infos = []) ⇒ Object
- ‘image_id’, klass: Users::ProfileImage
15 16 17 18 19 20 21 22 23 |
# File 'lib/mongoid_cache_store.rb', line 15 def cache_docs(doc_ids, doc_class, = []) doc_type = doc_class.to_s.underscore @doc_ids_hash[doc_type] ||= {} [doc_ids].flatten.compact.uniq.each{|doc_id| @doc_ids_hash[doc_type][doc_id.to_s] = nil} [doc_type] ||= [] [doc_type] += self end |
#document(doc_id, doc_class) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/mongoid_cache_store.rb', line 25 def document(doc_id, doc_class) return nil if doc_id.blank? doc_type = doc_class.to_s.underscore ensure_query(doc_class, doc_id) @documents[doc_type][doc_id.to_s] end |
#sorted_documents(doc_class, doc_ids = nil) ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'lib/mongoid_cache_store.rb', line 40 def sorted_documents(doc_class, doc_ids = nil) doc_type = doc_class.to_s.underscore ensure_query(doc_class, doc_ids) return [] if @documents[doc_type].blank? doc_ids == nil ? @documents[doc_type].values.compact : doc_ids.map{|doc_id| @documents[doc_type][doc_id.to_s]}.compact end |
#valid_doc_ids(doc_class, doc_ids = nil) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/mongoid_cache_store.rb', line 33 def valid_doc_ids(doc_class, doc_ids = nil) doc_type = doc_class.to_s.underscore ensure_query(doc_class, doc_ids) doc_ids.blank? ? cached_ids(doc_type) : doc_ids.select{|doc_id| @documents[doc_type][doc_id.to_s].present?} end |