Sha256: ad70edd040b4f5f891483b7115c665b4a054e10b81ceb3edf750d5e28d7252b0

Contents?: true

Size: 993 Bytes

Versions: 1

Compression:

Stored size: 993 Bytes

Contents

module MongoMapper
  module Plugins
    module Document
      module ClassMethods
        def embeddable?
          false
        end
      end
      
      module InstanceMethods
        def new?
          @new
        end

        def destroyed?
          @_destroyed == true
        end

        def reload
          if doc = self.class.query(:_id => id).query.first
            tap do |instance|
              instance.class.associations.each_key do |association_name|
                send(association_name).reset if respond_to?(association_name)
              end
              instance.attributes = doc
            end
          else
            raise DocumentNotFound, "Document match #{_id.inspect} does not exist in #{collection.name} collection"
          end
        end

        # Used by embedded docs to find root easily without if/respond_to? stuff.
        # Documents are always root documents.
        def _root_document
          self
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pwnash-mongo_mapper-0.7.6 lib/mongo_mapper/plugins/document.rb