Module: ModelsAuditor::Audit::ClassMethods

Defined in:
lib/models_auditor/audit.rb

Instance Method Summary collapse

Instance Method Details

#disable_auditObject

Дезактивирует аудит изменений данных модели



196
197
198
# File 'lib/models_auditor/audit.rb', line 196

def disable_audit
  @audit_enabled = false
end

#enable_audit(audit_mode, options = {}) ⇒ Object

Активирует аудит изменений данных модели

Parameters:

  • audit_mode (Integer)

    Способ логирования возможные значения: AUDIT_MODE_JSON | AUDIT_MODE_SERIALIZER | AUDIT_MODE_METHOD | AUDIT_MODE_CHANGES_ONLY AUDIT_MODE_JSON - Сериализация путем вызова метода as_json AUDIT_MODE_SERIALIZER - Сериализация через использование сериалайзера, указанного в опции :serializer AUDIT_MODE_METHOD - Сериализация данных формируемых в методе, указанном в опции :method AUDIT_MODE_CHANGES_ONLY - Сериализация данных модели, которые были изменены

  • options (Hash) (defaults to: {})

    Настройки логирования

Options Hash (options):

  • Параметры (params)

    сериализации данных. Для AUDIT_MODE_JSON значение передается в метод #as_json

    @example enable_audit ModelsAuditor::Audit::AUDIT_MODE_JSON, only: [:title, :subtitle, :published_at]
    

    Для AUDIT_MODE_SERIALIZER значение передается в сериалайзер в качестве опций

    @example enable_audit ModelsAuditor::Audit::AUDIT_MODE_SERIALIZER, serializer: AuditPostSerializer
    

    Для AUDIT_MODE_METHOD значение игнорируется

    @example enable_audit ModelsAuditor::Audit::AUDIT_MODE_SERIALIZER, method: :logged_data
    

    Для AUDIT_MODE_CHANGES_ONLY значение игнорируется

    @example enable_audit ModelsAuditor::Audit::AUDIT_MODE_CHANGES_ONLY
    


184
185
186
187
188
189
190
191
192
193
# File 'lib/models_auditor/audit.rb', line 184

def enable_audit(audit_mode, options = {})
  @audit_enabled  = true
  @audit_mode     = audit_mode
  @audit_settings = options
  # Lazily include the instance methods so we don't clutter up
  # any more ActiveRecord models than we have to.
  send :include, InstanceMethods
  after_initialize :do_audit_init_snapshot
  after_commit :do_audit_process
end