govuk_document_types 0.7.1 → 0.9.3

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: 7d1ca4831e2fccf5819f5d1b0d9758448e22bede1794541d561921db1c7dfdcc
4
- data.tar.gz: dfe564af149da8821063dcb542cd43c5cba6a1dc47a44ba523656bec7b50847f
3
+ metadata.gz: adad4f61a5d78fa9a467e79a12d0bafc4b54c1f0c5f6d7acbf0c458914936d6e
4
+ data.tar.gz: b1c6c9604283374fd65653ad1b241464a2e37aff574dbcfe99b159ebcbc9410e
5
5
  SHA512:
6
- metadata.gz: d1a835c8ffedaf922411e509a1e7c357ccf97482d83a7b7aabf9bf49ff7d416598232f5af1a1d39abd55c63a521389d29d2af5683740898ee285857fa9c08df3
7
- data.tar.gz: 3900036c325282d3a7fbf2065b5b108da92bcab612226f4547dfdcf4dfeede9056b56589d715b58acb4f530b7cf61f2f1db5e26f68ab5f6eff56c7f4716aa41d
6
+ metadata.gz: 761e2b47246c3e50a6b2b719f5932eb1845b2bf869f3670e5bc5b37ab75cec4edddc46cda0e1434d9c5bde20009662a195b31e34434acf98853ad85fb5756c57
7
+ data.tar.gz: d623119238d20bf59edc1d35dd97156c308b43638dd04538e90cf6c3244bb06b4f5735413a86a0187d5c6afd62b11b79c82eeaeb8441bb1cad0a4e0ca8ed3766
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.5.1
1
+ 2.6.6
data/CHANGELOG.md CHANGED
@@ -1,3 +1,28 @@
1
+ # 0.9.3
2
+
3
+ * Added `standard` subtype to the guidance group
4
+
5
+ # 0.9.2
6
+
7
+ * Moved `case_study` from policy papers and consultations to news and comms.
8
+
9
+ # 0.9.1
10
+
11
+ * Removed `contact` from the guidance group.
12
+
13
+ # 0.9.0
14
+
15
+ * Add translations to content purpose supergroup titles
16
+
17
+ # 0.8.0
18
+
19
+ * Adds `GovukDocumentTypes.supergroup_subgroups` as a way to retrieve
20
+ subgroups registered to the specified supergroups.
21
+ * Adds `GovukDocumentTypes.supergroup_document_types` as a way to retrieve
22
+ document types registered to the specified supergroups.
23
+ * Adds `GovukDocumentTypes.subgroup_document_types` as a way to retrieve
24
+ document types registered to the specified subgroups.
25
+
1
26
  # 0.7.1
2
27
 
3
28
  * Add `hrmc_manual` format to `guidance` `content_purpose_subgroup`
data/README.md CHANGED
@@ -5,26 +5,29 @@ of document types.
5
5
 
6
6
  https://docs.publishing.service.gov.uk/document-types.html
7
7
 
8
- This gem is only to be used in [publishing-api][publishing-api] and
9
- [rummager][rummager]. **Don't use it in your project**.
8
+ ## Usage
10
9
 
11
- ## Long term vision
12
10
 
13
- This gem is used to share the canonical list of supertypes between rummager and publishing-api. We're currently migrating to a new system of indexing where rummager gets all data from the publishing-api (via a message queue). Once that work is completed this repo should be retired and the canonical list should be moved to either [govuk-content-schemas][] for use in the publishing-api, or be moved into publishing-api directly.
11
+ Find the supertypes for a document type:
14
12
 
15
- ## How to add a supertype
13
+ ```rb
14
+ supertypes = GovukDocumentTypes.supertypes(document_type: "detailed_guide")
15
+ supertypes["content_purpose_subgroup"]
16
+ => "guidance"
17
+ ```
16
18
 
17
- 1. Add it to [data/supertypes.yml](data/supertypes.yml) in this gem and release a new version
18
- 2. [Add the supertype][rummager-pr] in Rummager so that it can be indexed and searched with. Bump the gem in Rummager.
19
- 3. [Add the type to content-schemas][schemas-pr]
20
- 4. [Add the type to the content-store][content-store-pr]
21
- 5. Bump the gem version in [publishing-api][publishing-api]
19
+ Find the document types for a supertype:
22
20
 
23
- ## How to update a supertype
21
+ ```rb
22
+ GovukDocumentTypes.supergroup_document_types("policy_and_engagement")
23
+ => ["case_study", "closed_consultation", "consultation_outcome", "impact_assessment", "open_consultation", "policy_paper"]
24
+ ```
24
25
 
25
- 1. Update [data/supertypes.yml](data/supertypes.yml) in this gem and release a new version.
26
- 2. Bump the gem version in [rummager][rummager]. Rummager's nightly re-indexing will pick up your changes.
27
- 3. Bump the gem version in [publishing-api][publishing-api]. All documents have to be sent to the content-store again for your changes to be picked up.
26
+ ## How to add or update a supertype
27
+
28
+ 1. Add it to [data/supertypes.yml](data/supertypes.yml) in this gem and release a new version
29
+ 2. Bump the gem version across GOV.UK apps using [Dependabot](https://app.dependabot.com/)
30
+ 3. Run the `rummager:update_supertypes` rake task in Search-api to set the correct supertypes in each document in the Elasticsearch indices. Do this _after_ bumping the gem version because this rake task uses information in the gem to find the correct supertype for the document_type defined in each document.
28
31
 
29
32
  ## Running the test suite
30
33
 
@@ -35,11 +38,3 @@ bundle exec rake
35
38
  ## License
36
39
 
37
40
  [MIT License](LICENSE.txt)
38
-
39
- [rummager-pr]: https://github.com/alphagov/rummager/pull/756
40
- [govuk-content-schemas]: https://github.com/alphagov/govuk-content-schemas
41
- [schemas-pr]: https://github.com/alphagov/govuk-content-schemas/pull/551
42
- [content-store-pr]: https://github.com/alphagov/content-store/pull/268
43
-
44
- [publishing-api]: https://github.com/alphagov/publishing-api
45
- [rummager]: https://github.com/alphagov/rummager
data/data/supertypes.yml CHANGED
@@ -161,8 +161,6 @@ content_purpose_document_supertype:
161
161
  # "Tags"
162
162
  - document_collection
163
163
  - mainstream_browse_page
164
- - policy
165
- - policy_area
166
164
  - taxon
167
165
  - topic
168
166
 
@@ -224,8 +222,6 @@ user_journey_document_supertype:
224
222
  - license_finder
225
223
  - mainstream_browse_page
226
224
  - organisation
227
- - policy
228
- - policy_area
229
225
  - search
230
226
  - service_manual_homepage
231
227
  - service_manual_topic
@@ -392,6 +388,7 @@ content_purpose_subgroup:
392
388
  - drug_safety_update
393
389
  - id: news
394
390
  document_types:
391
+ - case_study
395
392
  - news_article
396
393
  - news_story
397
394
  - press_release
@@ -441,7 +438,6 @@ content_purpose_subgroup:
441
438
  - manual_section
442
439
  - guidance
443
440
  - map
444
- - contact
445
441
  - calendar
446
442
  - statutory_guidance
447
443
  - notice
@@ -449,6 +445,7 @@ content_purpose_subgroup:
449
445
  - travel_advice
450
446
  - promotional
451
447
  - hmrc_manual
448
+ - standard
452
449
  - id: business_support
453
450
  document_types:
454
451
  - international_development_fund
@@ -458,7 +455,6 @@ content_purpose_subgroup:
458
455
  - id: policy
459
456
  document_types:
460
457
  - impact_assessment
461
- - case_study
462
458
  - policy_paper
463
459
  - id: consultations
464
460
  document_types:
@@ -521,6 +517,7 @@ content_purpose_supergroup:
521
517
  - correspondence
522
518
  - speech
523
519
  - government_response
520
+ - case_study
524
521
  - id: services
525
522
  document_types:
526
523
  - completed_transaction
@@ -543,7 +540,6 @@ content_purpose_supergroup:
543
540
  - manual_section
544
541
  - guidance
545
542
  - map
546
- - contact
547
543
  - calendar
548
544
  - statutory_guidance
549
545
  - notice
@@ -556,10 +552,10 @@ content_purpose_supergroup:
556
552
  - business_finance_support_scheme
557
553
  - statutory_instrument
558
554
  - hmrc_manual
555
+ - standard
559
556
  - id: policy_and_engagement
560
557
  document_types:
561
558
  - impact_assessment
562
- - case_study
563
559
  - policy_paper
564
560
  - open_consultation
565
561
  - closed_consultation
@@ -584,7 +580,3 @@ content_purpose_supergroup:
584
580
  - aaib_report
585
581
  - raib_report
586
582
  - maib_report
587
-
588
-
589
-
590
-
@@ -23,4 +23,5 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "rake", "~> 10.0"
24
24
  spec.add_development_dependency "rspec", "~> 3.0"
25
25
  spec.add_development_dependency "govuk-lint", "~> 3.0"
26
+ spec.add_development_dependency "i18n-spec"
26
27
  end
@@ -1,14 +1,15 @@
1
+ require "govuk_document_types/translations_railtie" if defined?(Rails)
1
2
  require "govuk_document_types/version"
2
3
  require "yaml"
3
4
 
4
5
  module GovukDocumentTypes
5
- DATA = YAML.load_file(File.dirname(__FILE__) + "/../data/supertypes.yml")
6
+ SUPERTYPES = YAML.load_file(File.dirname(__FILE__) + "/../data/supertypes.yml")
6
7
  SUPERGROUPS = YAML.load_file(File.dirname(__FILE__) + "/../data/supergroups.yml")
7
8
 
8
9
  def self.supertypes(document_type:)
9
10
  types = {}
10
11
 
11
- DATA.each do |name, definition|
12
+ SUPERTYPES.each do |name, definition|
12
13
  group_data = definition["items"].find do |supertype|
13
14
  supertype['document_types'].include?(document_type)
14
15
  end
@@ -24,4 +25,28 @@ module GovukDocumentTypes
24
25
  groups = SUPERGROUPS["content_purpose_supergroup"]["items"]
25
26
  groups.select { |g| ids.include?(g["id"]) }
26
27
  end
28
+
29
+ def self.supergroup_subgroups(*supergroup_ids)
30
+ SUPERGROUPS
31
+ .dig('content_purpose_supergroup', 'items')
32
+ .select { |supergroup| supergroup_ids.include?(supergroup['id']) }
33
+ .map { |supergroup| supergroup['subgroups'] }
34
+ .flatten
35
+ .uniq
36
+ .sort
37
+ end
38
+
39
+ def self.supergroup_document_types(*supergroup_ids)
40
+ subgroup_document_types(*supergroup_subgroups(*supergroup_ids))
41
+ end
42
+
43
+ def self.subgroup_document_types(*subgroup_ids)
44
+ SUPERTYPES
45
+ .dig('content_purpose_subgroup', 'items')
46
+ .select { |subgroup| subgroup_ids.include?(subgroup['id']) }
47
+ .map { |subgroup| subgroup['document_types'] }
48
+ .flatten
49
+ .uniq
50
+ .sort
51
+ end
27
52
  end
@@ -0,0 +1,21 @@
1
+ require 'rails'
2
+ module GovukDocumentTypes
3
+ class TranslationsRailtie < ::Rails::Railtie
4
+ initializer 'govuk_document_types' do |app|
5
+ GovukDocumentTypes::TranslationsRailtie.instance_eval do
6
+ pattern = pattern_from app.config.i18n.available_locales
7
+ add("rails/locale/#{pattern}.yml")
8
+ end
9
+ end
10
+
11
+ def self.add(pattern)
12
+ files = Dir[File.join(File.dirname(__FILE__), '../..', pattern)]
13
+ I18n.load_path.concat(files)
14
+ end
15
+
16
+ def self.pattern_from(args)
17
+ array = Array(args || [])
18
+ array.blank? ? '*' : "{#{array.join ','}}"
19
+ end
20
+ end
21
+ end
@@ -1,3 +1,3 @@
1
1
  module GovukDocumentTypes
2
- VERSION = "0.7.1".freeze
2
+ VERSION = "0.9.3".freeze
3
3
  end
@@ -0,0 +1,28 @@
1
+ ---
2
+ en:
3
+ content_purpose_supergroup:
4
+ guidance_and_regulation: Guidance and regulation
5
+ news_and_communications: News and communications
6
+ policy_and_engagement: Policy papers and consultations
7
+ research_and_statistics: "Research and statistics"
8
+ services: Services
9
+ transparency: Transparency and freedom of information releases
10
+ content_purpose_subgroup:
11
+ announcements: Announcements
12
+ business_support: Business funds and grants
13
+ consultations: Consultations
14
+ decisions: Decisions
15
+ freedom_of_information_releases: Freedom of information releases
16
+ guidance: Guidance
17
+ incidents: Incident reports
18
+ news: News
19
+ policy: Policy papers
20
+ regulation: Regulation
21
+ research: Research
22
+ safety_alerts: Safety alerts
23
+ services: Services
24
+ speeches_and_statements: Speeches and statements
25
+ statistics: Statistics
26
+ transactions: Transactions
27
+ transparency_data: Transparency data
28
+ updates_and_alerts: Updates and alerts
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_document_types
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - GOV.UK Dev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-08-30 00:00:00.000000000 Z
11
+ date: 2021-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: i18n-spec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  description: Gem to share document type groupings
56
70
  email:
57
71
  - govuk-dev@digital.cabinet-office.gov.uk
@@ -75,7 +89,9 @@ files:
75
89
  - data/supertypes.yml
76
90
  - govuk_document_types.gemspec
77
91
  - lib/govuk_document_types.rb
92
+ - lib/govuk_document_types/translations_railtie.rb
78
93
  - lib/govuk_document_types/version.rb
94
+ - rails/locale/en.yml
79
95
  homepage: https://github.com/alphagov/govuk_document_types
80
96
  licenses:
81
97
  - MIT
@@ -95,8 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
111
  - !ruby/object:Gem::Version
96
112
  version: '0'
97
113
  requirements: []
98
- rubyforge_project:
99
- rubygems_version: 2.7.6
114
+ rubygems_version: 3.1.4
100
115
  signing_key:
101
116
  specification_version: 4
102
117
  summary: Gem to share document type groupings