module HasLogs::ActAsLog::ClassMethods
Public Instance Methods
act_as_log(options = {})
click to toggle source
# File lib/has_logs/act_as_log.rb, line 12 def act_as_log(options = {}) return if self.included_modules.include?(ActAsLog::InstanceMethods) include ActAsLog::InstanceMethods cattr_accessor :originator_class_name self.originator_class_name = options[:class_name] || (self.name.gsub /Log\Z/, '') class_eval do belongs_to :originator, options.merge(class_name: originator_class_name, foreign_key: "#{originator_class_name.underscore}_id", touch: true) validates :"#{originator_class_name.underscore}_id", presence: true, uniqueness: { scope: :created_at } end end
act_as_log_of(class_name = nil, options = {})
click to toggle source
# File lib/has_logs/act_as_log.rb, line 8 def act_as_log_of(class_name = nil, options = {}) act_as_log(options.merge(class_name: class_name)) end
originator_class()
click to toggle source
# File lib/has_logs/act_as_log.rb, line 27 def originator_class originator_class_name.constantize end