module ActiveModel::Embedding::Document

Public Class Methods

included(klass) click to toggle source
# File lib/active_model/embedding/document.rb, line 6
def self.included(klass)
  klass.class_eval do
    extend ClassMethods
    extend ActiveModel::Callbacks

    define_model_callbacks :save

    include ActiveModel::Model
    include ActiveModel::Attributes
    include ActiveModel::Serializers::JSON
    include Embedding::Associations

    attribute :id, :integer

    def save
      run_callbacks :save do
        return false unless valid?

        self.id = object_id unless persisted?

        true
      end
    end

    def persisted?
      id.present?
    end

    def ==(other)
      attributes == other.attributes
    end
  end
end

Public Instance Methods

==(other) click to toggle source
# File lib/active_model/embedding/document.rb, line 34
def ==(other)
  attributes == other.attributes
end
persisted?() click to toggle source
# File lib/active_model/embedding/document.rb, line 30
def persisted?
  id.present?
end
save() click to toggle source
# File lib/active_model/embedding/document.rb, line 20
def save
  run_callbacks :save do
    return false unless valid?

    self.id = object_id unless persisted?

    true
  end
end