From 08e75124485b061368c4eba72ef368554d98e89c Mon Sep 17 00:00:00 2001 From: Jose Galisteo Date: Tue, 15 Jun 2021 22:15:36 +0200 Subject: [PATCH] [Address feedback] Refactor based on configuration setting --- lib/html/includes.js | 7 +++++-- lib/html/profile_handler.js | 2 +- lib/mini_profiler/asset_version.rb | 2 +- lib/mini_profiler/config.rb | 3 ++- lib/mini_profiler/profiler.rb | 1 + spec/integration/mini_profiler_spec.rb | 11 +++++++++++ 6 files changed, 21 insertions(+), 5 deletions(-) diff --git a/lib/html/includes.js b/lib/html/includes.js index 806c33cd..805c2bb1 100644 --- a/lib/html/includes.js +++ b/lib/html/includes.js @@ -666,7 +666,7 @@ var _MiniProfiler = (function() { ); } - if (typeof Turbo !== "undefined") { + if (options.hotwireTurboDriveSupport) { document.addEventListener("turbo:before-visit", onTurboBeforeVisit) document.addEventListener("turbo:load", onTurboLoad) } @@ -1053,6 +1053,8 @@ var _MiniProfiler = (function() { .getAttribute("data-hidden-custom-fields") .toLowerCase() .split(","); + var hotwireTurboDriveSupport = script + .getAttribute('data-turbo-permanent') === "true"; return { ids: ids, path: path, @@ -1071,7 +1073,8 @@ var _MiniProfiler = (function() { collapseResults: collapseResults, htmlContainer: htmlContainer, cssUrl: cssUrl, - hiddenCustomFields: hiddenCustomFields + hiddenCustomFields: hiddenCustomFields, + hotwireTurboDriveSupport: hotwireTurboDriveSupport }; })(); diff --git a/lib/html/profile_handler.js b/lib/html/profile_handler.js index 178f6fc2..fa183ecf 100644 --- a/lib/html/profile_handler.js +++ b/lib/html/profile_handler.js @@ -1 +1 @@ - + diff --git a/lib/mini_profiler/asset_version.rb b/lib/mini_profiler/asset_version.rb index 1c4c346f..9d64ccd8 100644 --- a/lib/mini_profiler/asset_version.rb +++ b/lib/mini_profiler/asset_version.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true module Rack class MiniProfiler - ASSET_VERSION = '40756d3425f8c8e3f901fb5e850a065a' + ASSET_VERSION = 'ec6d5541ecbc11a48798626c16a61342' end end diff --git a/lib/mini_profiler/config.rb b/lib/mini_profiler/config.rb index 417b22ba..ce773ef1 100644 --- a/lib/mini_profiler/config.rb +++ b/lib/mini_profiler/config.rb @@ -57,6 +57,7 @@ def self.default @snapshots_transport_auth_key = nil @snapshots_redact_sql_queries = true @snapshots_transport_gzip_requests = false + @enable_hotwire_turbo_drive_support = false self } @@ -69,7 +70,7 @@ def self.default :skip_schema_queries, :storage, :storage_failure, :storage_instance, :storage_options, :user_provider, :enable_advanced_debugging_tools, :skip_sql_param_names, :suppress_encoding, :max_sql_param_length, - :content_security_policy_nonce + :content_security_policy_nonce, :enable_hotwire_turbo_drive_support # ui accessors attr_accessor :collapse_results, :max_traces_to_show, :position, diff --git a/lib/mini_profiler/profiler.rb b/lib/mini_profiler/profiler.rb index efd52484..3485981d 100644 --- a/lib/mini_profiler/profiler.rb +++ b/lib/mini_profiler/profiler.rb @@ -751,6 +751,7 @@ def get_profile_script(env) htmlContainer: @config.html_container, hiddenCustomFields: @config.snapshot_hidden_custom_fields.join(','), cspNonce: content_security_policy_nonce, + hotwireTurboDriveSupport: @config.enable_hotwire_turbo_drive_support, } if current && current.page_struct diff --git a/spec/integration/mini_profiler_spec.rb b/spec/integration/mini_profiler_spec.rb index 9b44042f..737d7cc0 100644 --- a/spec/integration/mini_profiler_spec.rb +++ b/spec/integration/mini_profiler_spec.rb @@ -257,6 +257,17 @@ def app expect(last_response.status).to equal(200) end + describe 'with hotwire turbo drive support enabled' do + before do + Rack::MiniProfiler.config.enable_hotwire_turbo_drive_support = true + end + + it 'should define data-turbo-permanent as true' do + get '/html' + expect(last_response.body).to include('data-turbo-permanent="true"') + end + end + describe 'with caching re-enabled' do before :each do Rack::MiniProfiler.config.disable_caching = false