Project

scrutanize

0.0
No commit activity in last 3 years
No release in over 3 years
This rubygem does not have a description or summary.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

Scrutanize

Code Climate

This library assists in auditing a database for consistency.

Specifically, it aids in the setup/organization of auditor classes and adds a simple UI for viewing audit logs.

If you're using Rails 3.2.x, you must use version ~> 0.0.1 of this gem.

Install

in Gemfile... gem 'scrutanize'

Install the gem with rails g scrutanize:install

This will copy a migration to your project and create two files:

  1. config/schedule.rb
Use this file to configure when you would like to run your audits. See
https://github.com/javan/whenever for configuration options. By default it
will run all of the audits configured in `app/models/auditors`
once a day at 4:30 am.

Once you have configured the file to your liking, write the job to your
cron file by running `whenever -w`.

If you do not want to use cron jobs to run your audits, delete this file.
  1. config/initializers/scrutanize.rb

This file allow you to easily configure the back button in the audit reports view to redirect to a path of your choosing. By default it takes you to '/'.

It also has an option to override the results per page pagination.

Finally, mount the engine in your config/routes.rb mount Scrutanize::Engine => "/scrutanize"

Creating Auditors

Create auditors in app/models/auditors

Example:

# app/models/auditors/contract_auditor.rb
class ContractAuditor < Scrutanize::Auditor
  def records_to_audit
    Contract.all
  end

  def valid_record?(contract)
    contract.contract_dependency.present?
  end

  def audit_error_message
    "Contract does not have a dependency"
  end
end

Configure each auditor by specifying the records_to_audit, what makes a record valid, and the error message to log should a record fail the audit.

Viewing Audit Logs

Whenever a record fails an audit, a entry is logged. These are viewable at 'scrutanize/audit_logs' by default but you can mount the engine where you like.

alt text

Audit logs can be deleted and undeleted.

Note: If you need to add authorization to the audit_logs views, then run rails g scrutanize:views which will copy over the controller and view files for editing.