From 85b506c96a7dd55d459fc736ea6b37ea03c11ad5 Mon Sep 17 00:00:00 2001 From: Geoffrey Schorkopf Date: Thu, 2 Jun 2016 10:52:36 -0400 Subject: [PATCH 1/4] Writes a test to verify FastlyRails can soft purge * No changes need to be made to the FastlyRails module, as it already accepts an args splat * Follows https://github.com/fastly/fastly-ruby/blob/ca7197e8e592549a6d16a129b11f7 5828e7f4add/README.md#L147 --- test/fastly-rails_test.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 From 8f94203357634e8fdd5f76af946d53d3b0590ee0 Mon Sep 17 00:00:00 2001 From: Geoffrey Schorkopf Date: Thu, 2 Jun 2016 10:53:17 -0400 Subject: [PATCH 2/4] Writes soft purging methods within ActiveRecord Again, this hinges on https://github.com/fastly/fastly-ruby/blob/ca7197e8e592549a6d16a129b11f7 5828e7f4add/README.md#L147 --- lib/fastly-rails/active_record/surrogate_key.rb | 12 ++++++++++++ test/dummy/test/models/book_test.rb | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) 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/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 From cddead9214c9974eb9bcdfdb6302f56064ddfe34 Mon Sep 17 00:00:00 2001 From: Geoffrey Schorkopf Date: Thu, 2 Jun 2016 10:54:28 -0400 Subject: [PATCH 3/4] Updates the README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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. From 2c28c48190b70ecc9a7e9eb7f82e41da4aed2eba Mon Sep 17 00:00:00 2001 From: Geoffrey Schorkopf Date: Thu, 2 Jun 2016 11:51:31 -0400 Subject: [PATCH 4/4] Bumps the version number to 0.7.0 --- lib/fastly-rails/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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