diff --git a/README.md b/README.md index eb80a22..8c0297a 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ end ### Purges -Any object that inherits from ActiveRecord will have `purge_all` and `table_key` class methods available as well as `purge` and `purge_all` instance methods. +Any object that inherits from ActiveRecord will have `purge_all`, `soft_purge_all`, and `table_key` class methods available as well as `purge`, `soft_purge`, `purge_all`, and `soft_purge_all` instance methods. Example usage is show below. diff --git a/lib/fastly-rails/active_record/surrogate_key.rb b/lib/fastly-rails/active_record/surrogate_key.rb index f74af57..2097f86 100644 --- a/lib/fastly-rails/active_record/surrogate_key.rb +++ b/lib/fastly-rails/active_record/surrogate_key.rb @@ -12,6 +12,10 @@ def purge_all FastlyRails.purge_by_key(table_key) end + def soft_purge_all + FastlyRails.purge_by_key(table_key, true) + end + def table_key table_name end @@ -33,10 +37,18 @@ def purge FastlyRails.purge_by_key(record_key) end + def soft_purge + FastlyRails.purge_by_key(record_key, true) + end + def purge_all self.class.purge_all end + def soft_purge_all + self.class.soft_purge_all + end + def fastly_service_identifier self.class.fastly_service_identifier end diff --git a/lib/fastly-rails/version.rb b/lib/fastly-rails/version.rb index 5deb30b..75c789c 100644 --- a/lib/fastly-rails/version.rb +++ b/lib/fastly-rails/version.rb @@ -1,3 +1,3 @@ module FastlyRails - VERSION = "0.6.0" + VERSION = "0.7.0" end diff --git a/test/dummy/test/models/book_test.rb b/test/dummy/test/models/book_test.rb index 95eaa27..400385c 100644 --- a/test/dummy/test/models/book_test.rb +++ b/test/dummy/test/models/book_test.rb @@ -12,7 +12,7 @@ it "should have Fastly::SurrogateKey instance methods" do - [:record_key, :table_key, :purge, :purge_all].each do |method| + [:record_key, :table_key, :purge, :purge_all, :soft_purge, :soft_purge_all].each do |method| assert_respond_to book, method end @@ -20,7 +20,7 @@ it "should have Fastly::SurrogateKey class methods" do - [:table_key, :purge_all].each do |method| + [:table_key, :purge_all, :soft_purge_all].each do |method| assert_respond_to Book, method end diff --git a/test/fastly-rails_test.rb b/test/fastly-rails_test.rb index b0c77a2..9e9a4c0 100644 --- a/test/fastly-rails_test.rb +++ b/test/fastly-rails_test.rb @@ -69,6 +69,16 @@ end end + it 'allows soft purging' do + FastlyRails.stub(:client, client) do + FastlyRails.stub(:purging_enabled?, true) do + client.expect(:purge_by_key, nil, [key, true]) + FastlyRails.purge_by_key(key, true) + client.verify + end + end + end + it 'does nothing when purging is disabled' do configuration.purging_enabled = false FastlyRails.stub(:client, client) do