Sha256: 967efab0a42f84a20608a86806791ceac1701cb0986e014d69b78209748375c2

Contents?: true

Size: 1.78 KB

Versions: 38

Compression:

Stored size: 1.78 KB

Contents

module GovukPublishingComponents
  module Presenters
    class ImageCardHelper
      include ActionView::Helpers
      include ActionView::Context

      attr_reader :href, :href_data_attributes, :extra_links, :large, :extra_links_no_indent, :heading_text, :metadata

      def initialize(local_assigns)
        @href = local_assigns[:href]
        @href_data_attributes = local_assigns[:href_data_attributes]
        @extra_links = local_assigns[:extra_links] || []
        @image_src = local_assigns[:image_src]
        @image_alt = local_assigns[:image_alt] || ""
        @context = local_assigns[:context]
        @description = local_assigns[:description]
        @large = local_assigns[:large]
        @heading_text = local_assigns[:heading_text]
        @heading_level = local_assigns[:heading_level] || 2
        @extra_links_no_indent = local_assigns[:extra_links_no_indent]
        @metadata = local_assigns[:metadata]
      end

      def is_tracking?
        return true if @href_data_attributes
        if @extra_links
          @extra_links.each do |link|
            return true if link[:data_attributes]
          end
        end
        false
      end

      def image
        if @image_src
          content_tag(:figure, class: "gem-c-image-card__image-wrapper") do
            image_tag(@image_src, class: "gem-c-image-card__image", alt: @image_alt)
          end
        end
      end

      def context
        content_tag(:p, @context, class: "gem-c-image-card__context") if @context
      end

      def heading_tag
        return "h#{@heading_level}" if [1, 2, 3, 4, 5, 6].include? @heading_level
        return "span" if @heading_level.zero?
      end

      def description
        content_tag(:div, @description, class: "gem-c-image-card__description") if @description
      end
    end
  end
end

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
govuk_publishing_components-10.2.0 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-10.1.0 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-10.0.0 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-9.28.0 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-9.27.0 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-9.26.1 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-9.26.0 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-9.25.0 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-9.24.0 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-9.23.0 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-9.22.0 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-9.21.0 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-9.20.0 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-9.19.0 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-9.18.0 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-9.17.1 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-9.17 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-9.16.1 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-9.16.0 lib/govuk_publishing_components/presenters/image_card_helper.rb
govuk_publishing_components-9.15.0 lib/govuk_publishing_components/presenters/image_card_helper.rb