class GovukPublishingComponents::Presenters::GovernmentServiceSchema

Attributes

page[R]

Public Class Methods

new(page) click to toggle source
# File lib/govuk_publishing_components/presenters/machine_readable/government_service_schema.rb, line 6
def initialize(page)
  @page = page
end

Public Instance Methods

structured_data() click to toggle source
# File lib/govuk_publishing_components/presenters/machine_readable/government_service_schema.rb, line 10
def structured_data
  # http://schema.org/GovernmentService
  {
    "@context" => "http://schema.org",
    "@type" => "GovernmentService",
    "name" => page.title,
    "description" => page.description,
    "url" => page.canonical_url,
  }
    .merge(provider)
    .merge(related_services)
end

Private Instance Methods

provider() click to toggle source
# File lib/govuk_publishing_components/presenters/machine_readable/government_service_schema.rb, line 43
def provider
  organisations = page.content_item.dig("links", "organisations")

  return {} unless organisations.present?

  providers = organisations.map do |organisation|
    {
      "@type" => "GovernmentOrganization",
      "name" => organisation["title"],
      "url" => organisation["web_url"],
    }
  end

  {
    "provider" => providers,
  }
end