Sha256: 1592f2403b07b44f2a7d92f24dbf72433c543f6866a598f11a21cb219a917293

Contents?: true

Size: 703 Bytes

Versions: 13

Compression:

Stored size: 703 Bytes

Contents

# encoding: utf-8
module Mongoid #:nodoc:
  module Commands
    class Save
      # Performs a save of the supplied +Document+, handling all associated
      # callbacks and validation.
      #
      # Options:
      #
      # doc: A +Document+ that is going to be persisted.
      #
      # Returns: +Document+ if validation passes, +false+ if not.
      def self.execute(doc, validate = true)
        return false if validate && !doc.valid?
        doc.run_callbacks :before_save
        parent = doc._parent
        doc.new_record = false
        parent ? Save.execute(parent) : doc.collection.save(doc.attributes)
        doc.run_callbacks :after_save
        return true
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
mongoid-1.0.1 lib/mongoid/commands/save.rb
mongoid-1.0.0 lib/mongoid/commands/save.rb
mongoid-0.12.0 lib/mongoid/commands/save.rb
mongoid-0.11.9 lib/mongoid/commands/save.rb
mongoid-0.11.8 lib/mongoid/commands/save.rb
mongoid-0.11.7 lib/mongoid/commands/save.rb
mongoid-0.11.6 lib/mongoid/commands/save.rb
mongoid-0.11.5 lib/mongoid/commands/save.rb
mongoid-0.11.4 lib/mongoid/commands/save.rb
mongoid-0.11.3 lib/mongoid/commands/save.rb
mongoid-0.11.2 lib/mongoid/commands/save.rb
mongoid-0.11.1 lib/mongoid/commands/save.rb
mongoid-0.11.0 lib/mongoid/commands/save.rb