Class: GovukPublishingComponents::Presenters::ContentBreadcrumbsBasedOnTopic

Inherits:
Object
  • Object
show all
Defined in:
lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_topic.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(content_item) ⇒ ContentBreadcrumbsBasedOnTopic

Returns a new instance of ContentBreadcrumbsBasedOnTopic.



10
11
12
# File 'lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_topic.rb', line 10

def initialize(content_item)
  @content_item = content_item
end

Instance Attribute Details

#content_itemObject (readonly)

Returns the value of attribute content_item.



8
9
10
# File 'lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_topic.rb', line 8

def content_item
  @content_item
end

Class Method Details

.call(content_item) ⇒ Object



4
5
6
# File 'lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_topic.rb', line 4

def self.call(content_item)
  new(content_item).breadcrumbs
end

Instance Method Details



14
15
16
17
18
19
20
# File 'lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_topic.rb', line 14

def breadcrumbs
  breadcrumbs = [{ title: "Home", url: "/" }]
  return breadcrumbs unless topics.present?

  breadcrumbs << topic_breadcrumb
  breadcrumbs
end

#first_topicObject



29
30
31
# File 'lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_topic.rb', line 29

def first_topic
  topics.first
end

#topic_breadcrumbObject



22
23
24
25
26
27
# File 'lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_topic.rb', line 22

def topic_breadcrumb
  {
    title: first_topic["title"],
    url: first_topic["base_path"],
  }
end

#topicsObject



33
34
35
# File 'lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_topic.rb', line 33

def topics
  @topics ||= content_item.dig("links", "topics")
end