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 =
"1.0.1".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
|