class GovukPublishingComponents::Presenters::Breadcrumb

Attributes

crumb[R]
index[R]

Public Class Methods

new(crumb, index) click to toggle source
# File lib/govuk_publishing_components/presenters/breadcrumbs.rb, line 31
def initialize(crumb, index)
  @crumb = crumb
  @index = index + 1
end

Public Instance Methods

item_list_element() click to toggle source
# File lib/govuk_publishing_components/presenters/breadcrumbs.rb, line 36
def item_list_element
  {
    "@type" => "ListItem",
    "position" => index,
    "item" => list_item_item,
  }
end
path() click to toggle source
# File lib/govuk_publishing_components/presenters/breadcrumbs.rb, line 48
def path
  crumb[:url]
end
tracking_data(breadcrumbs_length) click to toggle source
# File lib/govuk_publishing_components/presenters/breadcrumbs.rb, line 52
def tracking_data(breadcrumbs_length)
  data = {
    track_category: "breadcrumbClicked",
    track_action: index,
    track_label: path,
    track_options: {
      dimension28: breadcrumbs_length.to_s,
      dimension29: crumb[:title],
    },
  }

  is_homepage = crumb[:url] == "/"

  if is_homepage
    data[:track_category] = "homeLinkClicked"
    data[:track_action] = "homeBreadcrumb"
    data[:track_label] = ""
    data[:track_options] = "{}"
  end

  data
end

Private Instance Methods

list_item_item() click to toggle source
# File lib/govuk_publishing_components/presenters/breadcrumbs.rb, line 79
def list_item_item
  path = crumb[:url]
  item = { "name" => crumb[:title] }
  item["@id"] = Plek.new.website_root + path if path
  item
end