Skip to content

Commit

Permalink
Merge pull request collectiveidea#56 from garaio/make_ignored_attribu…
Browse files Browse the repository at this point in the history
…tes_configurable

ActsAsAudited.ignored_attributes accessor to set ignored attributes
  • Loading branch information
danielmorrison committed Oct 25, 2011
2 parents a10fd27 + e013db3 commit a7f6b7a
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 2 deletions.
8 changes: 8 additions & 0 deletions lib/acts_as_audited.rb
Expand Up @@ -26,6 +26,14 @@
module ActsAsAudited
VERSION = '2.0.0'

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
Expand Down
3 changes: 1 addition & 2 deletions lib/acts_as_audited/auditor.rb
Expand Up @@ -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
self.non_audited_columns = except
Expand Down
9 changes: 9 additions & 0 deletions spec/acts_as_audited_spec.rb
Expand Up @@ -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
Expand Down

0 comments on commit a7f6b7a

Please sign in to comment.