close #307, close #326, close #328; Make Model.paper_trail_enabled_for_model? thread-safe

This commit is contained in:
Ben Atkins 2014-02-20 11:40:52 -05:00
parent 95a50ae6b8
commit 0359704751
3 changed files with 18 additions and 11 deletions

View File

@ -1,5 +1,8 @@
## 3.0.1 (Unreleased)
- [#328](https://github.com/airblade/paper_trail/pull/328) / [#326](https://github.com/airblade/paper_trail/issues/326)/
[#307](https://github.com/airblade/paper_trail/issues/307) - `Model.paper_trail_enabled_for_model?` and
`model_instance.without_versioning` is now thread-safe.
- [#316](https://github.com/airblade/paper_trail/issues/316) - `user_for_paper_trail` should default to `current_user.try(:id)`
instead of `current_user` (if `current_user` is defined).
- [#313](https://github.com/airblade/paper_trail/pull/313) - Make the `Rails::Controller` helper compatible with

View File

@ -203,9 +203,13 @@ module PaperTrail
nil
end
def paper_trail_enabled_for_model?
self.class.paper_trail_enabled_for_model?
end
# Executes the given method or block without creating a new version.
def without_versioning(method = nil)
paper_trail_was_enabled = self.class.paper_trail_enabled_for_model?
paper_trail_was_enabled = self.paper_trail_enabled_for_model?
self.class.paper_trail_off!
method ? method.to_proc.call(self) : yield
ensure
@ -334,7 +338,7 @@ module PaperTrail
end
def paper_trail_switched_on?
PaperTrail.enabled? && PaperTrail.enabled_for_controller? && self.class.paper_trail_enabled_for_model?
PaperTrail.enabled? && PaperTrail.enabled_for_controller? && self.paper_trail_enabled_for_model?
end
def save_version?

View File

@ -27,10 +27,10 @@ describe Widget do
describe :paper_trail_off! do
it { should respond_to(:paper_trail_off!) }
it 'should set the `paper_trail_enabled_for_model` to `false`' do
subject.paper_trail_enabled_for_model.should be_true
it 'should set the `paper_trail_enabled_for_model?` to `false`' do
subject.paper_trail_enabled_for_model?.should be_true
subject.paper_trail_off!
subject.paper_trail_enabled_for_model.should be_false
subject.paper_trail_enabled_for_model?.should be_false
end
end
@ -54,10 +54,10 @@ describe Widget do
it { should respond_to(:paper_trail_on!) }
it 'should set the `paper_trail_enabled_for_model` to `true`' do
subject.paper_trail_enabled_for_model.should be_false
it 'should set the `paper_trail_enabled_for_model?` to `true`' do
subject.paper_trail_enabled_for_model?.should be_false
subject.paper_trail_on!
subject.paper_trail_enabled_for_model.should be_true
subject.paper_trail_enabled_for_model?.should be_true
end
end