Module: Mongoid::Attributes::Processing

Included in:
Mongoid::Attributes
Defined in:
lib/mongoid/attributes/processing.rb

Overview

This module contains the behavior for processing attributes.

Instance Method Summary collapse

Instance Method Details

#process_attributes(attrs = nil) {|_self| ... } ⇒ Object

Process the provided attributes casting them to their proper values if a field exists for them on the document. This will be limited to only the attributes provided in the suppied Hash so that no extra nil values get put into the document's attributes.

Examples:

Process the attributes.

person.process_attributes(:title => "sir", :age => 40)

Parameters:

  • attrs (Hash) (defaults to: nil)

    The attributes to set.

Yields:

  • (_self)

Yield Parameters:

Since:

  • 2.0.0.rc.7


19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/mongoid/attributes/processing.rb', line 19

def process_attributes(attrs = nil)
  attrs ||= {}
  if !attrs.empty?
    attrs = sanitize_for_mass_assignment(attrs)
    attrs.each_pair do |key, value|
      next if pending_attribute?(key, value)
      process_attribute(key, value)
    end
  end
  yield self if block_given?
  process_pending
end