govuk_publishing_components 21.6.1 → 21.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 79be21f71f3a4b23d02315cbfcba46a68736e44e144d7b26bce1f0b62e38157e
4
- data.tar.gz: 48f9513d068a851dd17b13e4f8233ce48a4a2ab03928c0d6d97decc5bca8003b
3
+ metadata.gz: a13af1fed7c83644cba1a6560410b377afc3b56c6f6052fb0bbeb415463606af
4
+ data.tar.gz: 9073f4bc6aecb731bd1feb06af7d644f6f58a7c4e415eb29514d42e86322d6e4
5
5
  SHA512:
6
- metadata.gz: e052d46ec35f2385fcaa8b4461c841eda1920ec369d80f00d6230aeb017fe9efece15426aea9bf44bb7e755c395577ec6bad7036973d1e8c4267302b1beab69a
7
- data.tar.gz: 2d4604bdd3758762a9516031cd09866b68c7cfe35f4d13c08724ff8b76f061fdd107fc4a151c870748026579b0669319ad43d087537d62c6bcfb073804859157
6
+ metadata.gz: 4e2198e7fd14f2db62e344f6afab74c9a7b95a498d7466dde50d46cb6b5419e95b7cef3cdbdced865f5caf4d46edf96e9a87f140908910100d85c2a412678fcb
7
+ data.tar.gz: b13e4685a7e3edb57402610401f98a862dd05c808ccb5f4c579fbab37d0d09520701f1980602e004bc6062a470b70b508e92a05e6cc355a18f5fb0d5eedfca42
@@ -10,7 +10,7 @@
10
10
  <%= csrf_meta_tags %>
11
11
  <%= favicon_link_tag "govuk_publishing_components/favicon-#{environment}.png" %>
12
12
  <%= stylesheet_link_tag "application" %>
13
- <%= stylesheet_link_tag "print", media: print %>
13
+ <%= stylesheet_link_tag "print", media: "print" %>
14
14
  <%= javascript_include_tag "govuk_publishing_components/vendor/modernizr" %>
15
15
  <%= yield :head %>
16
16
  </head>
@@ -62,6 +62,14 @@ examples:
62
62
  <p>Your next of kin may need a strong stomach</p>
63
63
  schema: :faq
64
64
  canonical_url: https://www.gov.uk/how-to-train-your-dragon
65
+ government_service_schema:
66
+ data:
67
+ content_item:
68
+ title: "Apply for your first dragon"
69
+ base_path: "/apply-for-your-first-dragon"
70
+ description: "Apply for your first dragon from the Ministry of Dragons online"
71
+ details: {}
72
+ schema: :government_service
65
73
  person_schema:
66
74
  data:
67
75
  content_item:
@@ -0,0 +1,62 @@
1
+ module GovukPublishingComponents
2
+ module Presenters
3
+ class GovernmentServiceSchema
4
+ attr_reader :page
5
+
6
+ def initialize(page)
7
+ @page = page
8
+ end
9
+
10
+ def structured_data
11
+ # http://schema.org/GovernmentService
12
+ {
13
+ "@context" => "http://schema.org",
14
+ "@type" => "GovernmentService",
15
+ "name" => page.title,
16
+ "description" => page.description,
17
+ "url" => page.canonical_url
18
+ }
19
+ .merge(provider)
20
+ .merge(related_services)
21
+ end
22
+
23
+ private
24
+
25
+ def related_services
26
+ related_links = page.content_item.dig('links', 'ordered_related_items')
27
+
28
+ return {} unless related_links.present?
29
+
30
+ {
31
+ "isRelatedTo" => related_links.each_with_object([]) do |link, items|
32
+ if link['schema_name'] == 'transaction'
33
+ items << {
34
+ "@type" => "GovernmentService",
35
+ "name" => link['title'],
36
+ "url" => link['web_url']
37
+ }
38
+ end
39
+ end
40
+ }
41
+ end
42
+
43
+ def provider
44
+ organisations = page.content_item.dig('links', 'organisations')
45
+
46
+ return {} unless organisations.present?
47
+
48
+ providers = organisations.map do |organisation|
49
+ {
50
+ "@type" => "GovernmentOrganization",
51
+ "name" => organisation['title'],
52
+ "url" => organisation['web_url']
53
+ }
54
+ end
55
+
56
+ {
57
+ "provider" => providers
58
+ }
59
+ end
60
+ end
61
+ end
62
+ end
@@ -2,6 +2,7 @@ require 'govuk_publishing_components/presenters/machine_readable/page'
2
2
  require 'govuk_publishing_components/presenters/machine_readable/article_schema'
3
3
  require 'govuk_publishing_components/presenters/machine_readable/creative_work_schema'
4
4
  require 'govuk_publishing_components/presenters/machine_readable/faq_page_schema'
5
+ require 'govuk_publishing_components/presenters/machine_readable/government_service_schema'
5
6
  require 'govuk_publishing_components/presenters/machine_readable/has_part_schema'
6
7
  require 'govuk_publishing_components/presenters/machine_readable/is_part_of_schema'
7
8
  require 'govuk_publishing_components/presenters/machine_readable/news_article_schema'
@@ -24,6 +25,8 @@ module GovukPublishingComponents
24
25
  FaqPageSchema.new(page).structured_data
25
26
  elsif page.schema == :article
26
27
  ArticleSchema.new(page).structured_data
28
+ elsif page.schema == :government_service
29
+ GovernmentServiceSchema.new(page).structured_data
27
30
  elsif page.schema == :news_article
28
31
  NewsArticleSchema.new(page).structured_data
29
32
  elsif page.schema == :person
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = '21.6.1'.freeze
2
+ VERSION = '21.7.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_publishing_components
3
3
  version: !ruby/object:Gem::Version
4
- version: 21.6.1
4
+ version: 21.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GOV.UK Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-22 00:00:00.000000000 Z
11
+ date: 2019-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gds-api-adapters
@@ -744,6 +744,7 @@ files:
744
744
  - lib/govuk_publishing_components/presenters/machine_readable/article_schema.rb
745
745
  - lib/govuk_publishing_components/presenters/machine_readable/creative_work_schema.rb
746
746
  - lib/govuk_publishing_components/presenters/machine_readable/faq_page_schema.rb
747
+ - lib/govuk_publishing_components/presenters/machine_readable/government_service_schema.rb
747
748
  - lib/govuk_publishing_components/presenters/machine_readable/has_part_schema.rb
748
749
  - lib/govuk_publishing_components/presenters/machine_readable/is_part_of_schema.rb
749
750
  - lib/govuk_publishing_components/presenters/machine_readable/news_article_schema.rb