Sha256: fa42955f14a367b3e503301ee9a80831b91e040293c96c665d5c0831d1473637
Contents?: true
Size: 1.14 KB
Versions: 5
Compression:
Stored size: 1.14 KB
Contents
module GovukPublishingComponents module Presenters class FaqPageSchema attr_reader :page def initialize(page) @page = page end def structured_data # http://schema.org/FAQPage data = CreativeWorkSchema.new(@page).structured_data .merge(main_entity) data["@type"] = "FAQPage" data end private def main_entity { "mainEntity" => questions_and_answers } end def questions_and_answers page.parts.each_with_index.map do |part, index| part_url = part_url(part, index) { "@type" => "Question", "name" => part['title'], "url" => part_url, "acceptedAnswer" => { "@type" => "Answer", "url" => part_url, "text" => part['body'] } } end end def part_url(part, index) if index.zero? guide_url else guide_url + "/" + part["slug"] end end def guide_url Plek.new.website_root + page.base_path end end end end
Version data entries
5 entries across 5 versions & 1 rubygems