From bce60ab11de221f30e773abbaae28c4e41954aaa Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 20 Jul 2023 10:35:10 +0100 Subject: [PATCH] Add processor to remove blue bar from nav menu --- lib/slimmer.rb | 1 + lib/slimmer/headers.rb | 5 +++++ lib/slimmer/processors/blue_bar_remover.rb | 14 ++++++++++++++ lib/slimmer/skin.rb | 1 + 4 files changed, 21 insertions(+) create mode 100644 lib/slimmer/processors/blue_bar_remover.rb diff --git a/lib/slimmer.rb b/lib/slimmer.rb index dd1934af..bd7a6d93 100644 --- a/lib/slimmer.rb +++ b/lib/slimmer.rb @@ -33,6 +33,7 @@ def fetch(*) module Processors autoload :AccountsShower, "slimmer/processors/accounts_shower" + autoload :BlueBarRemover, "slimmer/processors/blue_bar_remover" autoload :BodyClassCopier, "slimmer/processors/body_class_copier" autoload :BodyInserter, "slimmer/processors/body_inserter" autoload :ConditionalCommentMover, "slimmer/processors/conditional_comment_mover" diff --git a/lib/slimmer/headers.rb b/lib/slimmer/headers.rb index 118f05a5..91d7e152 100644 --- a/lib/slimmer/headers.rb +++ b/lib/slimmer/headers.rb @@ -19,6 +19,7 @@ module Headers section: "Section", skip: "Skip", template: "Template", + remove_blue_bar: "Remove-Blue-Bar", remove_search: "Remove-Search", show_accounts: "Show-Accounts", }.freeze @@ -26,6 +27,9 @@ module Headers # @private APPLICATION_NAME_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:application_name]}".freeze + # @private + REMOVE_BLUE_BAR_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:remove_blue_bar]}".freeze + # @private FORMAT_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:format]}".freeze @@ -66,6 +70,7 @@ module Headers # @option hash [String] format # @option hash [String] organisations # @option hash [String] page_owner + # @option hash [String] remove_blue_bar # @option hash [String] remove_search # @option hash [String] result_count # @option hash [String] search_parameters diff --git a/lib/slimmer/processors/blue_bar_remover.rb b/lib/slimmer/processors/blue_bar_remover.rb new file mode 100644 index 00000000..c9eb365f --- /dev/null +++ b/lib/slimmer/processors/blue_bar_remover.rb @@ -0,0 +1,14 @@ +module Slimmer::Processors + class BlueBarRemover + def initialize(headers) + @headers = headers + end + + def filter(_src, dest) + if @headers.include?(Slimmer::Headers::REMOVE_BLUE_BAR_HEADER) + blue_bar = dest.at_css(".gem-c-layout-for-public__blue-bar") + blue_bar.remove if blue_bar + end + end + end +end diff --git a/lib/slimmer/skin.rb b/lib/slimmer/skin.rb index fd29522e..e50a3b59 100644 --- a/lib/slimmer/skin.rb +++ b/lib/slimmer/skin.rb @@ -118,6 +118,7 @@ def success(source_request, response, body) Processors::SearchPathSetter.new(response), Processors::SearchRemover.new(response.headers), Processors::AccountsShower.new(response.headers), + Processors::BlueBarRemover.new(response.headers), ] template_name = response.headers[Headers::TEMPLATE_HEADER] || "gem_layout"