module Mongoid::Userstamps::Model

Public Class Methods

included(base) click to toggle source
# File lib/mongoid-simple-userstamps/model.rb, line 7
def self.included(base)
  base.class_eval do
    attr_reader :skip_userstamps_flag

    if Mongoid::VERSION.to_f < 6
      belongs_to :created_by, polymorphic: true
      belongs_to :updated_by, polymorphic: true
    else
      belongs_to :created_by, polymorphic: true, optional: true
      belongs_to :updated_by, polymorphic: true, optional: true
    end

    before_create do
      unless @skip_userstamps_flag || created_by
        self.created_by = Mongoid::Userstamps::User.current
      end
    end

    before_update do
      unless @skip_userstamps_flag || updated_by_id_changed?
        self.updated_by = Mongoid::Userstamps::User.current
      end
    end

    after_save do
      @skip_userstamps_flag = false
    end

    def skip_userstamps
      @skip_userstamps_flag = true
      self
    end
  end
end

Public Instance Methods

skip_userstamps() click to toggle source
# File lib/mongoid-simple-userstamps/model.rb, line 35
def skip_userstamps
  @skip_userstamps_flag = true
  self
end