Module: StoresInMongo::DocumentMethods

Defined in:
lib/stores_in_mongo/document_methods.rb

Instance Method Summary collapse

Instance Method Details

#changed?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/stores_in_mongo/document_methods.rb', line 42

def changed?
  @mongo_dirty || super
end

#deep_dup(*args) ⇒ Object



36
37
38
39
40
# File 'lib/stores_in_mongo/document_methods.rb', line 36

def deep_dup(*args)
  copy = super
  copy.mongo_document = mongo_document.deep_dup
  return copy
end

#mongo_classObject



11
12
13
14
15
16
17
# File 'lib/stores_in_mongo/document_methods.rb', line 11

def mongo_class
  if self.stores_in_mongo_options[:use_sessions]
    mongo_class_name.constantize.with(session: mongo_session)
  else
    mongo_class_name.constantize
  end
end

#mongo_class_columnObject



23
24
25
# File 'lib/stores_in_mongo/document_methods.rb', line 23

def mongo_class_column
  self.stores_in_mongo_options[:polymorphic] && self.stores_in_mongo_options[:class_name]
end

#mongo_class_nameObject



3
4
5
6
7
8
9
# File 'lib/stores_in_mongo/document_methods.rb', line 3

def mongo_class_name
  if self.stores_in_mongo_options[:polymorphic]
    self.public_send(mongo_class_column) or raise RuntimeError, "No mongo type specified in #{mongo_class_column} for #{self}! Initialize your model with a value or use a column default."
  else
    self.stores_in_mongo_options[:class_name]
  end
end

#mongo_keyObject



19
20
21
# File 'lib/stores_in_mongo/document_methods.rb', line 19

def mongo_key
  self.public_send(mongo_key_column)
end

#mongo_key_columnObject



27
28
29
# File 'lib/stores_in_mongo/document_methods.rb', line 27

def mongo_key_column
  stores_in_mongo_options[:foreign_key]
end

#reload(*args) ⇒ Object



31
32
33
34
# File 'lib/stores_in_mongo/document_methods.rb', line 31

def reload(*args)
  clear_mongo_cache
  super
end