Sha256: 6c05f9fcfd5c18a0e55643691ad37797bc6a64dc4731d9194b141228f7f26bdd

Contents?: true

Size: 1.9 KB

Versions: 5

Compression:

Stored size: 1.9 KB

Contents

# encoding: utf-8
module Mongoid #:nodoc:

  # This module contains the behaviour for getting the various states a
  # document can transition through.
  module State

    # Returns true if the +Document+ has not been persisted to the database,
    # false if it has. This is determined by the variable @new_record
    # and NOT if the object has an id.
    #
    # @example Is the document new?
    #   person.new_record?
    #
    # @return [ true, false ] True if new, false if not.
    def new_record?
      @new_record == true
    end
    alias :new? :new_record?

    # Sets the new_record boolean - used after document is saved.
    #
    # @example Set whether the document is new.
    #   person.new_record = true
    #
    # @param [ true, false ] saved The value to set for new_record.
    #
    # @return [ true, false ] The new_record value.
    def new_record=(saved)
      @new_record = saved
    end

    # Checks if the document has been saved to the database. Returns false
    # if the document has been destroyed.
    #
    # @example Is the document persisted?
    #   person.persisted?
    #
    # @return [ true, false ] True if persisted, false if not.
    def persisted?
      !new_record? && !destroyed?
    end

    # Returns true if the +Document+ has been succesfully destroyed, and false
    # if it hasn't. This is determined by the variable @destroyed and NOT
    # by checking the database.
    #
    # @example Is the document destroyed?
    #   person.destroyed?
    #
    # @return [ true, false ] True if destroyed, false if not.
    def destroyed?
      @destroyed == true
    end
    alias :deleted? :destroyed?

    # Sets the destroyed boolean - used after document is destroyed.
    #
    # @example Set the destroyed flag.
    #   person.destroyed = true
    #
    # @return [ true, false ] The value set for destroyed.
    def destroyed=(destroyed)
      @destroyed = destroyed && true
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
mongoid-braxton-2.0.2 lib/mongoid/state.rb
mongoid-2.0.2 lib/mongoid/state.rb
mongoid-2.0.1 lib/mongoid/state.rb
mongoid-2.0.0 lib/mongoid/state.rb
mongoid-2.0.0.rc.8 lib/mongoid/state.rb