Sha256: 55bd456c49467ba5a0cf9238ca85f32df01b7643ffe99b1a916910e6080bcef0

Contents?: true

Size: 1.47 KB

Versions: 66

Compression:

Stored size: 1.47 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
        rel = "noopener noreferrer"
        rel << " external" unless @suggestion_link_url.start_with?("/", "https://gov.uk", "https://www.gov.uk")

        rel
      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

66 entries across 66 versions & 1 rubygems

Version Path
govuk_publishing_components-37.10.0 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.9.1 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.9.0 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.8.1 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.8.0 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.7.1 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.7.0 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.6.1 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.6.0 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.5.1 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.5.0 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.4.0 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.3.1 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.3.0 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.2.4 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.2.3 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.2.2 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.2.1 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.2.0 lib/govuk_publishing_components/presenters/intervention_helper.rb
govuk_publishing_components-37.1.1 lib/govuk_publishing_components/presenters/intervention_helper.rb