Module: Mongoid::Document::ClassMethods
Relationships & Source Files | |
Defined in: | lib/mongoid/document.rb |
Overview
Class-level methods for ::Mongoid::Document
objects.
Instance Method Summary
-
#_mongoid_clear_types
Internal use only
Internal use only
Clear the @_type cache.
-
#_types ⇒ Array<Class>
Returns all types to query for when using this class as the base.
-
#construct_document(attrs = nil, options = {}) ⇒ Document
Internal use only
Internal use only
Allocates and constructs a document.
-
#i18n_scope ⇒ Symbol
::Set
the i18n scope to overwrite ActiveModel. -
#instantiate(attrs = nil, selected_fields = nil, &block) ⇒ Document
Instantiate a new object, only when loaded from the database or when the attributes have already been typecast.
-
#instantiate_document(attrs = nil, selected_fields = nil, options = {}) {|Mongoid::Document| ... } ⇒ Document
Internal use only
Internal use only
Instantiate the document.
-
#logger ⇒ Logger
Returns the logger.
-
#with_callbacks(execute_callbacks)
Indicate whether callbacks should be invoked by default or not, within the block.
Instance Method Details
#_mongoid_clear_types
Clear the @_type cache. This is generally called when changing the discriminator key/value on a class.
# File 'lib/mongoid/document.rb', line 463
def _mongoid_clear_types @_types = nil superclass._mongoid_clear_types if hereditary? end
#_types ⇒ Array<Class
>
Returns all types to query for when using this class as the base.
# File 'lib/mongoid/document.rb', line 452
def _types @_types ||= (descendants + [ self ]).uniq.map(&:discriminator_value) end
#construct_document(attrs = nil, options = {}) ⇒ Document
A Ruby 2.x bug prevents the options hash from being keyword arguments. Once we drop support for Ruby 2.x, we can reimplement the options hash as keyword arguments. See bugs.ruby-lang.org/issues/15753
Allocates and constructs a document.
# File 'lib/mongoid/document.rb', line 441
def construct_document(attrs = nil, = {}) execute_callbacks = .fetch(:execute_callbacks, Threaded.execute_callbacks?) with_callbacks(execute_callbacks) { new(attrs) } end
#i18n_scope ⇒ Symbol
::Set
the i18n scope to overwrite ActiveModel.
# File 'lib/mongoid/document.rb', line 471
def i18n_scope :mongoid end
#instantiate(attrs = nil, selected_fields = nil, &block) ⇒ Document
Instantiate a new object, only when loaded from the database or when the attributes have already been typecast.
# File 'lib/mongoid/document.rb', line 386
def instantiate(attrs = nil, selected_fields = nil, &block) instantiate_document(attrs, selected_fields, &block) end
#instantiate_document(attrs = nil, selected_fields = nil, options = {}) {|Mongoid::Document| ... } ⇒ Document
A Ruby 2.x bug prevents the options hash from being keyword arguments. Once we drop support for Ruby 2.x, we can reimplement the options hash as keyword arguments.
Instantiate the document.
# File 'lib/mongoid/document.rb', line 410
def instantiate_document(attrs = nil, selected_fields = nil, = {}, &block) execute_callbacks = .fetch(:execute_callbacks, Threaded.execute_callbacks?) attributes = attrs&.to_h || {} doc = allocate doc.__selected_fields = selected_fields doc.instance_variable_set(:@attributes, attributes) doc.instance_variable_set(:@attributes_before_type_cast, attributes.dup) doc._handle_callbacks_after_instantiation(execute_callbacks, &block) doc. doc end
#logger ⇒ Logger
Returns the logger
#with_callbacks(execute_callbacks)
Indicate whether callbacks should be invoked by default or not, within the block. Callbacks may always be explicitly invoked by passing ‘execute_callbacks: true` where available.
# File 'lib/mongoid/document.rb', line 367
def with_callbacks(execute_callbacks) saved, Threaded.execute_callbacks = Threaded.execute_callbacks?, execute_callbacks yield ensure Threaded.execute_callbacks = saved end