Sha256: 5fe14fb92f8fb60ad060f6401a1a507b24fd7dee9c291cc0dff5cbda1c976cab

Contents?: true

Size: 1.58 KB

Versions: 59

Compression:

Stored size: 1.58 KB

Contents

module GovukPublishingComponents
  module Presenters
    class InterventionHelper
      def initialize(options = {})
        @name = options[:name]
        @dismiss_text = options[:dismiss_text]
        @accessible_text_suffix = I18n.t("components.intervention.accessible_link_text_suffix")
        @params = options[:params]
        @query_string = options[:query_string]
        @suggestion_text = options[:suggestion_text]
        @suggestion_link_text = options[:suggestion_link_text]
        @suggestion_link_url = options[:suggestion_link_url]
      end

      def accessible_text
        @suggestion_link_text << @accessible_text_suffix unless @suggestion_link_text.include?(@accessible_text_suffix)

        @suggestion_link_text
      end

      def dismiss_link
        if @query_string.present?
          "#{@query_string}&hide-intervention=true"
        else
          "?hide-intervention=true"
        end
      end

      def security_attr
        # Link is external unless it begins with "/" (but not "//") or it's on gov.uk.
        if %r{\A(/[^/]|https://(www\.)?gov\.uk(/|\z))}.match?(@suggestion_link_url)
          "noopener noreferrer"
        else
          "noopener noreferrer external"
        end
      end

      def show?
        return false if params["hide-intervention"] == "true"
        return false if @dismiss_text && @name.blank?

        @suggestion_text || (@suggestion_link_text && @suggestion_link_url)
      end

    private

      attr_reader :accessible_text_suffix, :query_string, :params, :suggestion_text, :suggestion_link_text, :suggestion_link_url
    end
  end
end

Version data entries

59 entries across 59 versions & 1 rubygems

Version Path
govuk_publishing_components-41.1.2 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-41.1.1 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-41.1.0 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-41.0.0 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-40.1.0 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-40.0.0 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-39.2.5 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-39.2.4 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-39.2.3 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-39.2.2 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-39.2.1 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-39.2.0 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-39.1.0 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-39.0.0 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-38.4.2 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-38.1.1 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-38.1.0 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-38.0.1 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-38.0.0 lib/govuk_publishing_components/presenters/intervention_helper.rb