Add 'verbose' option to add attributes value in log

master
Guillaume DOTT 2013-05-29 11:13:14 +02:00
parent d3dfbb8298
commit abd0cce54a
2 changed files with 15 additions and 2 deletions

View File

@ -60,6 +60,15 @@ class Example < ActiveRecord::Base
end end
``` ```
### Log attributes new value on update
You can choose to log the new value of an updated field with `verbose` :
```ruby
class Example < ActiveRecord::Base
big_brother_watch verbose: :third
end
```
## Contributing ## Contributing
1. Fork it 1. Fork it

View File

@ -11,7 +11,7 @@ module RailsBigBrother
class_attribute :big_brother_options class_attribute :big_brother_options
self.big_brother_options = {} self.big_brother_options = {}
[:ignore, :only].each do |k| [:ignore, :only, :verbose].each do |k|
self.big_brother_options[k] = [options[k]].flatten.compact.map(&:to_s) if options.has_key?(k) self.big_brother_options[k] = [options[k]].flatten.compact.map(&:to_s) if options.has_key?(k)
end end
@ -34,7 +34,11 @@ module RailsBigBrother
changed_fields = changed_fields & self.class.big_brother_options[:only] if self.class.big_brother_options.has_key?(:only) changed_fields = changed_fields & self.class.big_brother_options[:only] if self.class.big_brother_options.has_key?(:only)
unless changed_fields.empty? unless changed_fields.empty?
big_brother_log 'update', changed_fields.join(',') changed_fields_string = changed_fields.map do |f|
f + (
self.class.big_brother_options[:verbose].include?(f) ? ":#{send(f)}" : '')
end.join(',')
big_brother_log 'update', changed_fields_string
end end
end end