Sha256: 42245984baee824d7d8e048448738f227a3a2b96c0ec02665b011128ae20042b
Contents?: true
Size: 1.3 KB
Versions: 5
Compression:
Stored size: 1.3 KB
Contents
module Mongoid module Userstamp extend ActiveSupport::Concern included do belongs_to Userstamp.config.creator_field, class_name: Userstamp.config.user_model_name belongs_to Userstamp.config.updater_field, class_name: Userstamp.config.user_model_name before_validation :set_updater before_validation :set_creator protected def set_updater return if !Userstamp.has_current_user? self.send("#{Userstamp.config.updater_field}=", Userstamp.current_user) end def set_creator return if !Userstamp.has_current_user? || self.send(Userstamp.config.creator_field) self.send("#{Userstamp.config.creator_field}=", Userstamp.current_user) end end class << self def config(&block) if block_given? @@config = Userstamp::Config.new(&block) else @@config ||= Userstamp::Config.new end end def has_current_user? config.user_model.respond_to?(:current) end def current_user config.user_model.try(:current) end def find_user(user_id) begin user_id ? Userstamp.config.user_model.unscoped.find(user_id) : nil rescue Mongoid::Errors::DocumentNotFound => e nil end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems