govuk_publishing_components 21.6.1 → 21.7.0

Sign up to get free protection for your applications and to get access to all the features.
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