Permalink
Browse files

ActsAsAudited.ignored_attributes accessor to set ignored attributes

  • Loading branch information...
1 parent caf9d34 commit e013db3a78bcefccf2b9efd599fdd90637d5eed4 @senny senny committed Apr 26, 2011
Showing with 18 additions and 2 deletions.
  1. +8 −0 lib/acts_as_audited.rb
  2. +1 −2 lib/acts_as_audited/auditor.rb
  3. +9 −0 spec/acts_as_audited_spec.rb
View
8 lib/acts_as_audited.rb
@@ -26,6 +26,14 @@
module ActsAsAudited
VERSION = '2.0.0.rc7'
+ class << self
+ attr_accessor_with_default :ignored_attributes, ['lock_version',
+ 'created_at',
+ 'updated_at',
+ 'created_on',
+ 'updated_on']
+ end
+
mattr_accessor :current_user_method
# The method to be called to return the current user for logging in the audits.
@@current_user_method = :current_user
View
3 lib/acts_as_audited/auditor.rb
@@ -59,8 +59,7 @@ def acts_as_audited(options = {})
if options[:only]
except = self.column_names - options[:only].flatten.map(&:to_s)
else
- except = [self.primary_key, inheritance_column, 'lock_version',
- 'created_at', 'updated_at', 'created_on', 'updated_on']
+ except = [self.primary_key, inheritance_column] + ActsAsAudited.ignored_attributes
except |= Array(options[:except]).collect(&:to_s) if options[:except]
end
write_inheritable_attribute :non_audited_columns, except
View
9 spec/acts_as_audited_spec.rb
@@ -17,6 +17,15 @@
end
end
+ it "should be configurable which attributes are not audited" do
+ ActsAsAudited.ignored_attributes = ['delta', 'top_secret', 'created_at']
+ class Secret < ActiveRecord::Base
+ acts_as_audited
+ end
+
+ Secret.non_audited_columns.should include('delta', 'top_secret', 'created_at')
+ end
+
it "should not save non-audited columns" do
create_user.audits.first.audited_changes.keys.any? { |col| ['created_at', 'updated_at', 'password'].include?( col ) }.should be_false
end

0 comments on commit e013db3

Please sign in to comment.