Gem Version Build Status Maintainability Test Coverage

Perfect Audit API wrapper.


Add this line to your application's Gemfile:

gem 'perfect_audit'

And then execute:

$ bundle

Or install it yourself as:

$ gem install perfect_audit


  PerfectAudit.configure do |config|
    config.api_key = 'your_api_key'
    config.api_secret = 'your_api_secret'

Exception Handling

If PerfectAudit will return anything different from 200 OK status code, PerfectAudit::Error will be raised. It contains #message and #code returned from API.

For example with invalid credentials you will receive:

PerfectAudit.books.all#=> PerfectAudit::Error: Email and/or password not found [1306]

And if you will try to find a Book that does not exist, you will receive:

PerfectAudit.books.find(82087)#=> PerfectAudit::Error: Book not found [1401]


Books Repository

Get books list for your account

PerfectAudit.books.all#=> [#<PerfectAudit::Book:0x00007ff51bbfbe28>, ...]

Create a book

# Create a book with name=Test
PerfectAudit.books.create('Test')#=> #<PerfectAudit::Book:0x00007ff51c8e4248 @id=0, @created_at="2018-03-22T20:21:25Z", @name="Test", @public=false ...>

# Create a book with name=Test which is public
PerfectAudit.books.create('Test', true)#=> #<PerfectAudit::Book:0x00007ff51c8e4248 @id=0, @created_at="2018-03-22T20:21:25Z", @name="Test", @public=true ...>

Find book by ID

PerfectAudit.books.find(100)#=> #<PerfectAudit::Book:0x00007ff51c89f828 @id=100, @created_at="2018-03-22T20:48:54Z", @name="Test", @public=false ...>

Delete a book

# To delete a book you can use either its ID or instance
PerfectAudit.books.delete(100)#=> true

book = PerfectAudit.books.find(100)
PerfectAudit.books.delete(book)#=> true

Export book to Excel

book = PerfectAudit.books.find(100)
File.write('./book.xlsx', PerfectAudit.books.to_excel(book))

Documents Repository

Upload document to a book

# To upload documents to a book you can use book ID or its instance and File
PerfectAudit.documents.create(100,'./document.pdf'))#=> true

book = PerfectAudit.books.find(100)
PerfectAudit.documents.create(book,'./document.pdf'))#=> true


Sponsored by JetRockets.



The gem is available as open source under the terms of the MIT License.