diff options
author | Jean Boussier <jean.boussier@gmail.com> | 2016-08-16 15:20:50 +0200 |
---|---|---|
committer | Jean Boussier <jean.boussier@gmail.com> | 2016-08-16 15:20:50 +0200 |
commit | ed34b6760793ebc8477f3cd6398ac3ef829b57d1 (patch) | |
tree | 8dd7d63c06cbae930b2413e38fa5b4e017929afb | |
parent | 245c64d428279122c5ae2ddfdc4d420a87a88f9a (diff) | |
download | rails-ed34b6760793ebc8477f3cd6398ac3ef829b57d1.tar.gz rails-ed34b6760793ebc8477f3cd6398ac3ef829b57d1.tar.bz2 rails-ed34b6760793ebc8477f3cd6398ac3ef829b57d1.zip |
Makes touch_later respects no_touching policy
-rw-r--r-- | activerecord/lib/active_record/base.rb | 2 | ||||
-rw-r--r-- | activerecord/lib/active_record/no_touching.rb | 4 | ||||
-rw-r--r-- | activerecord/test/cases/touch_later_test.rb | 9 |
3 files changed, 14 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 6a1a27ce41..5228ab4404 100644 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -312,8 +312,8 @@ module ActiveRecord #:nodoc: include NestedAttributes include Aggregations include Transactions - include NoTouching include TouchLater + include NoTouching include Reflection include Serialization include Store diff --git a/activerecord/lib/active_record/no_touching.rb b/activerecord/lib/active_record/no_touching.rb index edb5066fa0..4059020e25 100644 --- a/activerecord/lib/active_record/no_touching.rb +++ b/activerecord/lib/active_record/no_touching.rb @@ -45,6 +45,10 @@ module ActiveRecord NoTouching.applied_to?(self.class) end + def touch_later(*) # :nodoc: + super unless no_touching? + end + def touch(*) # :nodoc: super unless no_touching? end diff --git a/activerecord/test/cases/touch_later_test.rb b/activerecord/test/cases/touch_later_test.rb index b47769eed7..7c1f3c87b8 100644 --- a/activerecord/test/cases/touch_later_test.rb +++ b/activerecord/test/cases/touch_later_test.rb @@ -24,6 +24,15 @@ class TouchLaterTest < ActiveRecord::TestCase assert_not invoice.changed? end + def test_touch_later_respects_no_touching_policy + time = Time.now.utc - 25.days + topic = Topic.create!(updated_at: time, created_at: time) + Topic.no_touching do + topic.touch_later + end + assert_equal time.to_i, topic.updated_at.to_i + end + def test_touch_later_update_the_attributes time = Time.now.utc - 25.days topic = Topic.create!(updated_at: time, created_at: time) |