Class: Decidim::SchemaOrgBreadcrumbListSerializer

Inherits:
Exporters::Serializer show all
Includes:
SanitizeHelper
Defined in:
decidim-core/app/serializers/decidim/schema_org_breadcrumb_list_serializer.rb

Instance Attribute Summary

Attributes inherited from Exporters::Serializer

#resource

Instance Method Summary collapse

Methods included from SanitizeHelper

#decidim_escape_translated, #decidim_html_escape, #decidim_rich_text, #decidim_sanitize, #decidim_sanitize_admin, #decidim_sanitize_editor, #decidim_sanitize_editor_admin, #decidim_sanitize_newsletter, #decidim_sanitize_translated, #decidim_url_escape, included

Methods inherited from Exporters::Serializer

#event_name, #finalize, #run

Constructor Details

#initialize(options) ⇒ SchemaOrgBreadcrumbListSerializer

Public: Initializes the serializer with a list of breadcrumb items.



10
11
12
13
14
# File 'decidim-core/app/serializers/decidim/schema_org_breadcrumb_list_serializer.rb', line 10

def initialize(options)
  @breadcrumb_items = options[:breadcrumb_items]
  @base_url = options[:base_url]
  @organization_name = options[:organization_name]
end

Instance Method Details

#serializeObject

Serializes a breadcrumb items list for the Schema.org BreadcrumbList type



20
21
22
23
24
25
26
27
28
29
# File 'decidim-core/app/serializers/decidim/schema_org_breadcrumb_list_serializer.rb', line 20

def serialize
  return {} if breadcrumb_items.none? { |item| item.has_key?(:url) }

  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    name: "#{organization_name} breadcrumb",
    itemListElement: breadcrumb_items_serialized
  }
end