Module: GovukDocumentTypes
- Defined in:
- lib/govuk_document_types.rb,
lib/govuk_document_types/version.rb,
lib/govuk_document_types/translations_railtie.rb
Defined Under Namespace
Classes: TranslationsRailtie
Constant Summary
collapse
- SUPERTYPES =
YAML.load_file("#{File.dirname(__FILE__)}/../data/supertypes.yml")
- SUPERGROUPS =
YAML.load_file("#{File.dirname(__FILE__)}/../data/supergroups.yml")
- VERSION =
"3.0.0".freeze
Class Method Summary
collapse
Class Method Details
.subgroup_document_types(*subgroup_ids) ⇒ Object
43
44
45
46
47
48
49
50
51
|
# File 'lib/govuk_document_types.rb', line 43
def self.subgroup_document_types(*subgroup_ids)
SUPERTYPES
.dig("content_purpose_subgroup", "items")
.select { |subgroup| subgroup_ids.include?(subgroup["id"]) }
.map { |subgroup| subgroup["document_types"] }
.flatten
.uniq
.sort
end
|
.supergroup_document_types(*supergroup_ids) ⇒ Object
39
40
41
|
# File 'lib/govuk_document_types.rb', line 39
def self.supergroup_document_types(*supergroup_ids)
subgroup_document_types(*supergroup_subgroups(*supergroup_ids))
end
|
.supergroup_subgroups(*supergroup_ids) ⇒ Object
29
30
31
32
33
34
35
36
37
|
# File 'lib/govuk_document_types.rb', line 29
def self.supergroup_subgroups(*supergroup_ids)
SUPERGROUPS
.dig("content_purpose_supergroup", "items")
.select { |supergroup| supergroup_ids.include?(supergroup["id"]) }
.map { |supergroup| supergroup["subgroups"] }
.flatten
.uniq
.sort
end
|
.supergroups(ids:) ⇒ Object
24
25
26
27
|
# File 'lib/govuk_document_types.rb', line 24
def self.supergroups(ids:)
groups = SUPERGROUPS["content_purpose_supergroup"]["items"]
groups.select { |g| ids.include?(g["id"]) }
end
|
.supertypes(document_type:) ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/govuk_document_types.rb', line 9
def self.supertypes(document_type:)
types = {}
SUPERTYPES.each do |name, definition|
group_data = definition["items"].find do |supertype|
supertype["document_types"].include?(document_type)
end
type = (group_data && group_data["id"]) || definition["default"]
types.merge!(name => type)
end
types
end
|