module Audited

def audit_class

def audit_class
  # The audit_class is set as String in the initializer. It can not be constantized during initialization and must
  # be constantized at runtime. See https://github.com/collectiveidea/audited/issues/608
  @audit_class = @audit_class.safe_constantize if @audit_class.is_a?(String)
  @audit_class ||= Audited::Audit
end

def config

def config
  yield(self)
end

def store

def store
  current_store_value = Thread.current.thread_variable_get(:audited_store)
  if current_store_value.nil?
    Thread.current.thread_variable_set(:audited_store, {})
  else
    current_store_value
  end
end