From 44d82de74d99609aae124e7f29589fc8dbbdcc53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E8=BF=AB=E9=9B=85=E4=BB=81?= Date: Fri, 28 Sep 2018 18:08:45 +0900 Subject: [PATCH 1/4] feat: add method for purge by url --- lib/fastly-rails.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/fastly-rails.rb b/lib/fastly-rails.rb index a50c5c2..231ca8e 100644 --- a/lib/fastly-rails.rb +++ b/lib/fastly-rails.rb @@ -26,6 +26,10 @@ def self.purge_by_key(*args) client.purge_by_key(*args) if purging_enabled? end + def self.purge_by_url(url, soft = false) + client.purge(url, soft) if purging_enabled? + end + def self.client raise NoAPIKeyProvidedError unless configuration.authenticatable? From 80f9fd8ba2c8272b014bc9ed5e6a9cde846de2b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E8=BF=AB=E9=9B=85=E4=BB=81?= Date: Fri, 28 Sep 2018 18:08:59 +0900 Subject: [PATCH 2/4] feat: add test --- test/fastly-rails_test.rb | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/test/fastly-rails_test.rb b/test/fastly-rails_test.rb index 9e9a4c0..49697aa 100644 --- a/test/fastly-rails_test.rb +++ b/test/fastly-rails_test.rb @@ -86,4 +86,36 @@ end end end + + describe 'purge_by_url' do + let(:client) { MiniTest::Mock.new } + let(:url) { "http://test.com" } + + it 'delegates to the client when purging is enabled' do + FastlyRails.stub(:client, client) do + FastlyRails.stub(:purging_enabled?, true) do + client.expect(:purge_by_url, nil, [url]) + FastlyRails.purge_by_url(url) + client.verify + end + end + end + + it 'allows soft purging' do + FastlyRails.stub(:client, client) do + FastlyRails.stub(:purging_enabled?, true) do + client.expect(:purge_by_url, nil, [url, true]) + FastlyRails.purge_by_url(url, true) + client.verify + end + end + end + + it 'does nothing when purging is disabled' do + configuration.purging_enabled = false + FastlyRails.stub(:client, client) do + FastlyRails.purge_by_url(url) + end + end + end end From 5ab3991b7173543b7f56838b2f29a9a1ed689f96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E8=BF=AB=E9=9B=85=E4=BB=81?= Date: Fri, 28 Sep 2018 18:32:24 +0900 Subject: [PATCH 3/4] fix: test --- test/fastly-rails_test.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/fastly-rails_test.rb b/test/fastly-rails_test.rb index 49697aa..f29a08d 100644 --- a/test/fastly-rails_test.rb +++ b/test/fastly-rails_test.rb @@ -94,7 +94,7 @@ it 'delegates to the client when purging is enabled' do FastlyRails.stub(:client, client) do FastlyRails.stub(:purging_enabled?, true) do - client.expect(:purge_by_url, nil, [url]) + client.expect(:purge, nil, [url]) FastlyRails.purge_by_url(url) client.verify end @@ -104,7 +104,7 @@ it 'allows soft purging' do FastlyRails.stub(:client, client) do FastlyRails.stub(:purging_enabled?, true) do - client.expect(:purge_by_url, nil, [url, true]) + client.expect(:purge, nil, [url, true]) FastlyRails.purge_by_url(url, true) client.verify end From 1408fa8fc206e219561b944c1106f6636d964077 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E8=BF=AB=E9=9B=85=E4=BB=81?= Date: Fri, 28 Sep 2018 18:39:02 +0900 Subject: [PATCH 4/4] fix: spec --- test/fastly-rails_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fastly-rails_test.rb b/test/fastly-rails_test.rb index f29a08d..b4bbb21 100644 --- a/test/fastly-rails_test.rb +++ b/test/fastly-rails_test.rb @@ -94,7 +94,7 @@ it 'delegates to the client when purging is enabled' do FastlyRails.stub(:client, client) do FastlyRails.stub(:purging_enabled?, true) do - client.expect(:purge, nil, [url]) + client.expect(:purge, nil, [url, false]) FastlyRails.purge_by_url(url) client.verify end