Sha256: 46107f8b80c7c693b9784bbc9030f43144d3a81a226308d5537ba04f80e5fe01

Contents?: true

Size: 793 Bytes

Versions: 48

Compression:

Stored size: 793 Bytes

Contents

module GovukPublishingComponents
  module Presenters
    # @private
    class ContentBreadcrumbsBasedOnParent
      def initialize(content_item)
        @content_item = ContentItem.new(content_item)
      end

      def breadcrumbs
        ordered_parents = all_parents.map do |parent|
          { title: parent.title, url: parent.base_path }
        end

        ordered_parents << { title: "Home", url: "/" }

        {
          breadcrumbs: ordered_parents.reverse,
        }
      end

    private

      attr_reader :content_item

      def all_parents
        parents = []

        direct_parent = content_item.parent
        while direct_parent
          parents << direct_parent

          direct_parent = direct_parent.parent
        end

        parents
      end
    end
  end
end

Version data entries

48 entries across 48 versions & 1 rubygems

Version Path
govuk_publishing_components-21.56.0 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.55.4 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.55.3 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.55.2 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.55.1 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.55.0 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.54.0 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.53.0 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.52.1 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.52.0 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.51.0 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.50.1 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.50.0 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.49.0 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.48.0 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.47.0 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.46.0 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.45.0 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.44.0 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb
govuk_publishing_components-21.43.0 lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_parent.rb