From 4e13bf89565ab1782424b753c403e75547326f42 Mon Sep 17 00:00:00 2001 From: Andrew Chen Date: Thu, 7 Sep 2023 19:53:43 -0700 Subject: [PATCH 1/3] allow skip prerender --- lib/prerender_rails.rb | 8 ++++++++ prerender_rails.gemspec | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/prerender_rails.rb b/lib/prerender_rails.rb index 4db5ace..7b8413a 100644 --- a/lib/prerender_rails.rb +++ b/lib/prerender_rails.rb @@ -126,6 +126,14 @@ def call(env) def should_show_prerendered_page(env) + + if(@options[:should_skip_prerender]) + should_skip_prerender = @options[:should_skip_prerender].call(env) + if(should_skip_prerender) + return false + end + end + user_agent = env['HTTP_USER_AGENT'] buffer_agent = env['HTTP_X_BUFFERBOT'] prerender_agent = env['HTTP_X_PRERENDER'] diff --git a/prerender_rails.gemspec b/prerender_rails.gemspec index 564ce7e..d2c3125 100644 --- a/prerender_rails.gemspec +++ b/prerender_rails.gemspec @@ -2,7 +2,7 @@ Gem::Specification.new do |spec| spec.name = "prerender_rails" - spec.version = "1.9.0" + spec.version = "1.9.0-1" spec.authors = ["Todd Hooper"] spec.email = ["todd@prerender.io"] spec.description = %q{Rails middleware to prerender your javascript heavy pages on the fly by a phantomjs service} From 77f1380c1b0ff906f2766b334804500ba63c8055 Mon Sep 17 00:00:00 2001 From: Andrew Chen Date: Thu, 7 Sep 2023 20:04:00 -0700 Subject: [PATCH 2/3] logging --- lib/prerender_rails.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/prerender_rails.rb b/lib/prerender_rails.rb index 7b8413a..8157dd4 100644 --- a/lib/prerender_rails.rb +++ b/lib/prerender_rails.rb @@ -130,6 +130,7 @@ def should_show_prerendered_page(env) if(@options[:should_skip_prerender]) should_skip_prerender = @options[:should_skip_prerender].call(env) if(should_skip_prerender) + Rails.logger.debug "skipping prerender" return false end end From 2db0e472612adcc7f460eaa76735dda156a0b20d Mon Sep 17 00:00:00 2001 From: Andrew Chen Date: Thu, 7 Sep 2023 20:17:34 -0700 Subject: [PATCH 3/3] make it the last check to reduce overhead --- lib/prerender_rails.rb | 18 ++++++++++-------- prerender_rails.gemspec | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/prerender_rails.rb b/lib/prerender_rails.rb index 8157dd4..a681c0f 100644 --- a/lib/prerender_rails.rb +++ b/lib/prerender_rails.rb @@ -127,14 +127,6 @@ def call(env) def should_show_prerendered_page(env) - if(@options[:should_skip_prerender]) - should_skip_prerender = @options[:should_skip_prerender].call(env) - if(should_skip_prerender) - Rails.logger.debug "skipping prerender" - return false - end - end - user_agent = env['HTTP_USER_AGENT'] buffer_agent = env['HTTP_X_BUFFERBOT'] prerender_agent = env['HTTP_X_PRERENDER'] @@ -176,6 +168,16 @@ def should_show_prerendered_page(env) return false end + if(is_requesting_prerendered_page) + if(@options[:should_skip_prerender]) + should_skip_prerender = @options[:should_skip_prerender].call(env) + if(should_skip_prerender) + Rails.logger.debug "skipping prerender" + return false + end + end + end + return is_requesting_prerendered_page end diff --git a/prerender_rails.gemspec b/prerender_rails.gemspec index d2c3125..e585e45 100644 --- a/prerender_rails.gemspec +++ b/prerender_rails.gemspec @@ -2,7 +2,7 @@ Gem::Specification.new do |spec| spec.name = "prerender_rails" - spec.version = "1.9.0-1" + spec.version = "1.9.0-2" spec.authors = ["Todd Hooper"] spec.email = ["todd@prerender.io"] spec.description = %q{Rails middleware to prerender your javascript heavy pages on the fly by a phantomjs service}