77457be68f | ||
---|---|---|
lib | ||
.gitignore | ||
Gemfile | ||
LICENSE.txt | ||
README.md | ||
Rakefile | ||
rails_big_brother.gemspec |
README.md
RailsBigBrother
RailsBigBrother lets you log every create, update and destroy on any of your models.
Installation
Add this line to your application's Gemfile:
gem 'rails_big_brother'
And then execute:
$ bundle
Or install it yourself as:
$ gem install rails_big_brother
Configuration
RailsBigBrother.config do |config|
config.format = "big_brother;%<user>s;%<controller_info>s;%<class>s;%<id>s;%<action>s;%<args>s"
config.logger = Rails.logger
config.hash_to_s = proc { |hash| hash.map { |k,v| "#{k}:#{v}" }.join(',') }
config.array_to_s = proc { |array| array.join(',') }
end
Usage
Simply add this line in the model you want to log :
big_brother_watch
User and controller info
To fill user and controller info, you need to define two methods in your ApplicationController
def big_brother_user
''
end
def big_brother_infos
{}
end
big_brother_user
must return a string.
big_brother_infos
can return a string, an array or a hash.
Choose events to log
You can choose which events to log with the on
option. For example :
class Example < ActiveRecord::Base
big_brother_watch on: [:create, :destroy]
end
Select attributes to log
You can specify attributes to monitor with only
:
class Example < ActiveRecord::Base
big_brother_watch only: [:first, :second]
end
You can also ignore some attributes with ignore
:
class Example < ActiveRecord::Base
big_brother_watch ignore: :third
end
Log attributes new value on update
You can choose to log the new value of an updated field with verbose
:
class Example < ActiveRecord::Base
big_brother_watch verbose: :third
end
:verbose
option can take a boolean. If true, every updated fields values will be written in log file.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request