glossarist 2.8.7 → 2.8.11
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 +4 -4
- data/.gitignore +2 -0
- data/.rubocop_todo.yml +128 -11
- data/CLAUDE.md +34 -3
- data/Gemfile +1 -0
- data/lib/glossarist/cli/compare_command.rb +2 -2
- data/lib/glossarist/cli/export_command.rb +1 -3
- data/lib/glossarist/collection.rb +1 -1
- data/lib/glossarist/collections/bibliography_collection.rb +1 -1
- data/lib/glossarist/concept_data.rb +3 -2
- data/lib/glossarist/concept_reference.rb +7 -1
- data/lib/glossarist/concept_set.rb +5 -1
- data/lib/glossarist/concept_source.rb +2 -2
- data/lib/glossarist/concept_validator.rb +3 -1
- data/lib/glossarist/dataset_validator.rb +1 -1
- data/lib/glossarist/{error.rb → errors/base.rb} +3 -1
- data/lib/glossarist/errors/cache_version_mismatch_error.rb +12 -0
- data/lib/glossarist/errors/invalid_language_code_error.rb +19 -0
- data/lib/glossarist/errors/invalid_type_error.rb +8 -0
- data/lib/glossarist/errors/load_error.rb +22 -0
- data/lib/glossarist/errors/parse_error.rb +24 -0
- data/lib/glossarist/errors.rb +14 -0
- data/lib/glossarist/gcr_package.rb +4 -2
- data/lib/glossarist/glossary_store.rb +175 -1
- data/lib/glossarist/managed_concept.rb +31 -17
- data/lib/glossarist/managed_concept_collection.rb +52 -8
- data/lib/glossarist/reference_extractor.rb +22 -2
- data/lib/glossarist/reference_resolver.rb +38 -3
- data/lib/glossarist/resolution_adapter/bibliography.rb +22 -0
- data/lib/glossarist/resolution_adapter.rb +1 -0
- data/lib/glossarist/schema_migration/v0_to_v1.rb +200 -0
- data/lib/glossarist/schema_migration/v2_to_v3.rb +50 -0
- data/lib/glossarist/schema_migration.rb +10 -224
- data/lib/glossarist/sts/importer.rb +11 -12
- data/lib/glossarist/sts/term_extractor.rb +105 -6
- data/lib/glossarist/transforms/concept_to_gloss_transform.rb +1 -1
- data/lib/glossarist/v2/managed_concept.rb +2 -4
- data/lib/glossarist/v3/managed_concept.rb +2 -4
- data/lib/glossarist/validation/asset_index.rb +1 -1
- data/lib/glossarist/validation/rules/asciidoc_xref_rule.rb +11 -21
- data/lib/glossarist/validation/rules/cite_ref_integrity_rule.rb +74 -0
- data/lib/glossarist/validation/rules/concept_context.rb +24 -0
- data/lib/glossarist/validation/rules/concept_mention_rule.rb +1 -3
- data/lib/glossarist/validation/rules/image_reference_rule.rb +10 -21
- data/lib/glossarist/version.rb +1 -1
- data/lib/glossarist.rb +5 -13
- data/scripts/upgrade_dataset_to_v3.rb +1 -1
- metadata +13 -9
- data/lib/glossarist/concept_collector.rb +0 -231
- data/lib/glossarist/concept_manager.rb +0 -183
- data/lib/glossarist/error/cache_version_mismatch_error.rb +0 -8
- data/lib/glossarist/error/invalid_language_code_error.rb +0 -15
- data/lib/glossarist/error/invalid_type_error.rb +0 -4
- data/lib/glossarist/error/parse_error.rb +0 -16
|
@@ -7,6 +7,7 @@ module Glossarist
|
|
|
7
7
|
raw = File.read(xml_path)
|
|
8
8
|
@standard = ::Sts::IsoSts::Standard.from_xml(raw)
|
|
9
9
|
@source_ref = extract_source_ref
|
|
10
|
+
@std_prefix = extract_std_prefix(@source_ref)
|
|
10
11
|
end
|
|
11
12
|
|
|
12
13
|
def extract
|
|
@@ -90,27 +91,104 @@ module Glossarist
|
|
|
90
91
|
)
|
|
91
92
|
end
|
|
92
93
|
|
|
94
|
+
ELEMENT_NAME_TO_ATTR = {
|
|
95
|
+
"entailedTerm" => :entailed_term,
|
|
96
|
+
"xref" => :xref,
|
|
97
|
+
"italic" => :italic,
|
|
98
|
+
"bold" => :bold,
|
|
99
|
+
"sup" => :sup,
|
|
100
|
+
"sub" => :sub,
|
|
101
|
+
"monospace" => :monospace,
|
|
102
|
+
"std" => :std,
|
|
103
|
+
"math" => :math,
|
|
104
|
+
"inline-formula" => :inline_formula,
|
|
105
|
+
"list" => :list,
|
|
106
|
+
"styled-content" => :styled_content,
|
|
107
|
+
"ext-link" => :ext_link,
|
|
108
|
+
}.freeze
|
|
109
|
+
|
|
93
110
|
def extract_definition_text(lang_set)
|
|
94
111
|
definitions = lang_set.definition
|
|
95
112
|
return "" unless definitions&.any?
|
|
96
113
|
|
|
97
|
-
definitions.first
|
|
114
|
+
extract_mixed_text(definitions.first)
|
|
98
115
|
end
|
|
99
116
|
|
|
100
117
|
def extract_note_texts(lang_set)
|
|
101
118
|
lang_set.note.filter_map do |n|
|
|
102
|
-
text = n
|
|
119
|
+
text = extract_mixed_text(n)
|
|
103
120
|
text unless text.empty?
|
|
104
121
|
end
|
|
105
122
|
end
|
|
106
123
|
|
|
107
124
|
def extract_example_texts(lang_set)
|
|
108
125
|
lang_set.example.filter_map do |e|
|
|
109
|
-
text = e
|
|
126
|
+
text = extract_mixed_text(e)
|
|
110
127
|
text unless text.empty?
|
|
111
128
|
end
|
|
112
129
|
end
|
|
113
130
|
|
|
131
|
+
def extract_mixed_text(mixed_element)
|
|
132
|
+
indices = Hash.new(0)
|
|
133
|
+
parts = []
|
|
134
|
+
|
|
135
|
+
mixed_element.element_order.each do |elem|
|
|
136
|
+
if elem.node_type == :text
|
|
137
|
+
parts << elem.text_content.to_s
|
|
138
|
+
else
|
|
139
|
+
attr_name = ELEMENT_NAME_TO_ATTR[elem.name]
|
|
140
|
+
next unless attr_name
|
|
141
|
+
|
|
142
|
+
collection = mixed_element.class.attributes.key?(attr_name) &&
|
|
143
|
+
mixed_element.public_send(attr_name)
|
|
144
|
+
next unless collection
|
|
145
|
+
|
|
146
|
+
child = collection[indices[elem.name]]
|
|
147
|
+
if child
|
|
148
|
+
if elem.name == "entailedTerm"
|
|
149
|
+
parts << format_entailed_term(child)
|
|
150
|
+
else
|
|
151
|
+
text = child_value_text(child)
|
|
152
|
+
parts << text if text
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
indices[elem.name] += 1
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
normalize_whitespace(parts.join)
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
# entailedTerm → "{{19135:2026:3.5.1,concept}}"
|
|
163
|
+
# format: {{concept_id, render_text}}
|
|
164
|
+
def format_entailed_term(entailed)
|
|
165
|
+
raw_text = entailed.value.to_s
|
|
166
|
+
designation = raw_text.gsub(/\s+\(\d[\d.]*\)\s*\z/, "").strip
|
|
167
|
+
section = extract_section_from_target(entailed.target)
|
|
168
|
+
|
|
169
|
+
if @std_prefix && section
|
|
170
|
+
"{{#{@std_prefix}:#{section},#{designation}}}"
|
|
171
|
+
else
|
|
172
|
+
raw_text.strip
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
# "term_3.5.1" → "3.5.1", "term_3.8.2-1" → "3.8.2"
|
|
177
|
+
def extract_section_from_target(target)
|
|
178
|
+
return nil unless target
|
|
179
|
+
|
|
180
|
+
match = target.match(/term_(\d+(?:\.\d+)*)/)
|
|
181
|
+
match ? match[1] : nil
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
def child_value_text(child)
|
|
185
|
+
val = child.value
|
|
186
|
+
case val
|
|
187
|
+
when Array then val.join.to_s
|
|
188
|
+
when String then val
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
|
|
114
192
|
def extract_source_texts(lang_set)
|
|
115
193
|
lang_set.source.filter_map do |s|
|
|
116
194
|
text = s.value&.join.to_s.strip
|
|
@@ -175,12 +253,33 @@ module Glossarist
|
|
|
175
253
|
end
|
|
176
254
|
|
|
177
255
|
def extract_ref_text(ref)
|
|
178
|
-
|
|
179
|
-
|
|
256
|
+
case ref
|
|
257
|
+
when ::Sts::IsoSts::StdRef
|
|
258
|
+
normalize_whitespace(ref.content.join.to_s)
|
|
259
|
+
when ::Sts::NisoSts::StandardRef
|
|
260
|
+
normalize_whitespace(ref.value.to_s)
|
|
180
261
|
else
|
|
181
|
-
|
|
262
|
+
""
|
|
182
263
|
end
|
|
183
264
|
end
|
|
265
|
+
|
|
266
|
+
def normalize_whitespace(text)
|
|
267
|
+
text.gsub(/[\s\u00a0]+/, " ").strip
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
# "ISO 19101-1:2014" → "19101-1:2014", "ISO/TS 19130-2:2014" → "TS-19130-2:2014"
|
|
271
|
+
def extract_std_prefix(source_ref)
|
|
272
|
+
return nil unless source_ref
|
|
273
|
+
|
|
274
|
+
match = source_ref.match(/\AISO(?:\/(\p{Upper}+))? (\d+(?:-\d+)?):(\d+)\z/)
|
|
275
|
+
return nil unless match
|
|
276
|
+
|
|
277
|
+
type_part = match[1]
|
|
278
|
+
number = match[2]
|
|
279
|
+
year = match[3]
|
|
280
|
+
|
|
281
|
+
type_part ? "#{type_part}-#{number}:#{year}" : "#{number}:#{year}"
|
|
282
|
+
end
|
|
184
283
|
end
|
|
185
284
|
end
|
|
186
285
|
end
|
|
@@ -122,7 +122,7 @@ module Glossarist
|
|
|
122
122
|
|
|
123
123
|
dd_attrs = if data
|
|
124
124
|
data.class.detailed_definition_fields.to_h do |field|
|
|
125
|
-
[field, build_gloss_definitions(data.
|
|
125
|
+
[field, build_gloss_definitions(data.public_send(field))]
|
|
126
126
|
end
|
|
127
127
|
else
|
|
128
128
|
{ definition: [], notes: [], examples: [] }
|
|
@@ -9,15 +9,13 @@ module Glossarist
|
|
|
9
9
|
|
|
10
10
|
key_value do
|
|
11
11
|
map :data, to: :data
|
|
12
|
-
map :id, with: { to: :identifier_to_yaml, from: :identifier_from_yaml }
|
|
13
|
-
map :identifier,
|
|
14
|
-
with: { to: :identifier_to_yaml, from: :identifier_from_yaml }
|
|
15
12
|
map :related, to: :related
|
|
16
13
|
map :dates, to: :dates
|
|
17
14
|
map %i[date_accepted dateAccepted],
|
|
18
15
|
with: { from: :date_accepted_from_yaml, to: :date_accepted_to_yaml }
|
|
19
16
|
map :status, to: :status
|
|
20
|
-
map
|
|
17
|
+
map %i[id uuid], to: :uuid,
|
|
18
|
+
with: { from: :uuid_from_yaml, to: :uuid_to_yaml }
|
|
21
19
|
map :sources, to: :sources
|
|
22
20
|
end
|
|
23
21
|
end
|
|
@@ -9,15 +9,13 @@ module Glossarist
|
|
|
9
9
|
|
|
10
10
|
key_value do
|
|
11
11
|
map :data, to: :data
|
|
12
|
-
map :id, with: { to: :identifier_to_yaml, from: :identifier_from_yaml }
|
|
13
|
-
map :identifier,
|
|
14
|
-
with: { to: :identifier_to_yaml, from: :identifier_from_yaml }
|
|
15
12
|
map :related, to: :related
|
|
16
13
|
map :dates, to: :dates
|
|
17
14
|
map %i[date_accepted dateAccepted],
|
|
18
15
|
with: { from: :date_accepted_from_yaml, to: :date_accepted_to_yaml }
|
|
19
16
|
map :status, to: :status
|
|
20
|
-
map
|
|
17
|
+
map %i[id uuid], to: :uuid,
|
|
18
|
+
with: { from: :uuid_from_yaml, to: :uuid_to_yaml }
|
|
21
19
|
map :schema_version, to: :schema_version
|
|
22
20
|
map :sources, to: :sources
|
|
23
21
|
end
|
|
@@ -14,30 +14,20 @@ module Glossarist
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def check(context)
|
|
17
|
-
concept = context.concept
|
|
18
17
|
fname = context.file_name
|
|
19
|
-
extractor = ReferenceExtractor.new
|
|
20
18
|
issues = []
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"unresolved bibliography reference <<#{ref.anchor}>>",
|
|
34
|
-
code: code, severity: severity,
|
|
35
|
-
location: "#{fname}/#{lang}",
|
|
36
|
-
suggestion: "add '#{ref.anchor}' as a source, " \
|
|
37
|
-
"or verify it exists in bibliography.yaml"
|
|
38
|
-
)
|
|
39
|
-
end
|
|
40
|
-
end
|
|
20
|
+
context.references.each do |ref|
|
|
21
|
+
next unless ref.is_a?(BibliographicReference)
|
|
22
|
+
next if context.bibliography_index.resolve?(ref.anchor)
|
|
23
|
+
|
|
24
|
+
issues << issue(
|
|
25
|
+
"unresolved bibliography reference <<#{ref.anchor}>>",
|
|
26
|
+
code: code, severity: severity,
|
|
27
|
+
location: fname,
|
|
28
|
+
suggestion: "add '#{ref.anchor}' as a source, " \
|
|
29
|
+
"or verify it exists in bibliography.yaml"
|
|
30
|
+
)
|
|
41
31
|
end
|
|
42
32
|
|
|
43
33
|
issues
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Glossarist
|
|
4
|
+
module Validation
|
|
5
|
+
module Rules
|
|
6
|
+
class CiteRefIntegrityRule < Base
|
|
7
|
+
def code = "GLS-110"
|
|
8
|
+
def category = :references
|
|
9
|
+
def severity = "warning"
|
|
10
|
+
def scope = :concept
|
|
11
|
+
|
|
12
|
+
def applicable?(context)
|
|
13
|
+
context.concept.localizations&.any?
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def check(context)
|
|
17
|
+
concept = context.concept
|
|
18
|
+
fname = context.file_name
|
|
19
|
+
issues = []
|
|
20
|
+
|
|
21
|
+
check_unique_source_ids(concept, fname, issues)
|
|
22
|
+
check_unresolved_mentions(context, concept, fname, issues)
|
|
23
|
+
|
|
24
|
+
issues
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
def check_unique_source_ids(concept, fname, issues)
|
|
30
|
+
seen = Hash.new { |h, k| h[k] = [] }
|
|
31
|
+
concept.all_sources.each do |source|
|
|
32
|
+
next unless source.id
|
|
33
|
+
|
|
34
|
+
seen[source.id] << source
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
seen.each do |id, sources|
|
|
38
|
+
next if sources.length <= 1
|
|
39
|
+
|
|
40
|
+
issues << issue(
|
|
41
|
+
"duplicate source id '#{id}' appears #{sources.length} times",
|
|
42
|
+
code: "GLS-110", severity: severity,
|
|
43
|
+
location: fname,
|
|
44
|
+
suggestion: "source ids must be unique within a concept"
|
|
45
|
+
)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def check_unresolved_mentions(context, concept, fname, issues)
|
|
50
|
+
keys = cite_mention_keys(context)
|
|
51
|
+
return if keys.empty?
|
|
52
|
+
|
|
53
|
+
known_ids = concept.all_sources.filter_map(&:id).to_set
|
|
54
|
+
keys.each do |key|
|
|
55
|
+
next if known_ids.include?(key)
|
|
56
|
+
|
|
57
|
+
issues << issue(
|
|
58
|
+
"inline {{cite:#{key}}} does not resolve to any source",
|
|
59
|
+
code: "GLS-110", severity: severity,
|
|
60
|
+
location: fname,
|
|
61
|
+
suggestion: "add a source with id '#{key}' or fix the reference"
|
|
62
|
+
)
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def cite_mention_keys(context)
|
|
67
|
+
context.references
|
|
68
|
+
.select(&:cite?)
|
|
69
|
+
.filter_map(&:concept_id)
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
module Glossarist
|
|
4
4
|
module Validation
|
|
5
5
|
module Rules
|
|
6
|
+
# Shared context for concept-scoped validation rules.
|
|
7
|
+
#
|
|
8
|
+
# Provides lazy-memoized access to extracted references so that multiple
|
|
9
|
+
# rules examining the same concept share one extraction pass (DRY,
|
|
10
|
+
# single source of truth). Rules ask the context for references rather
|
|
11
|
+
# than instantiating their own ReferenceExtractor.
|
|
6
12
|
class ConceptContext
|
|
7
13
|
attr_reader :concept, :file_name, :collection_context
|
|
8
14
|
|
|
@@ -16,6 +22,24 @@ module Glossarist
|
|
|
16
22
|
@concept.data&.id&.to_s
|
|
17
23
|
end
|
|
18
24
|
|
|
25
|
+
# All references extracted from the concept's text fields
|
|
26
|
+
# (definitions, notes, examples) via {{...}} mentions, <<xrefs>>,
|
|
27
|
+
# and image::...[] references. Includes ConceptReference,
|
|
28
|
+
# BibliographicReference, and AssetReference objects.
|
|
29
|
+
# Memoized — extracted once per concept, shared across all rules.
|
|
30
|
+
def references
|
|
31
|
+
@references ||= ReferenceExtractor.new
|
|
32
|
+
.extract_from_managed_concept(@concept)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# All asset references (NonVerbRep, GraphicalSymbol) extracted
|
|
36
|
+
# from the concept's model attributes.
|
|
37
|
+
# Memoized — extracted once per concept, shared across all rules.
|
|
38
|
+
def asset_references
|
|
39
|
+
@asset_references ||= ReferenceExtractor.new
|
|
40
|
+
.extract_asset_refs_from_concept(@concept)
|
|
41
|
+
end
|
|
42
|
+
|
|
19
43
|
def bibliography_index
|
|
20
44
|
@collection_context.bibliography_index
|
|
21
45
|
end
|
|
@@ -14,12 +14,10 @@ module Glossarist
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def check(context)
|
|
17
|
-
concept = context.concept
|
|
18
17
|
fname = context.file_name
|
|
19
|
-
extractor = ReferenceExtractor.new
|
|
20
18
|
issues = []
|
|
21
19
|
|
|
22
|
-
refs =
|
|
20
|
+
refs = context.references
|
|
23
21
|
.select { |r| r.is_a?(ConceptReference) && r.local? }
|
|
24
22
|
|
|
25
23
|
refs.each do |ref|
|
|
@@ -14,33 +14,22 @@ module Glossarist
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def check(context)
|
|
17
|
-
concept = context.concept
|
|
18
17
|
fname = context.file_name
|
|
19
|
-
extractor = ReferenceExtractor.new
|
|
20
18
|
issues = []
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
l10n.text_content.each do |text|
|
|
26
|
-
next unless text
|
|
27
|
-
|
|
28
|
-
extractor.extract_from_text(text).each do |ref|
|
|
29
|
-
next unless ref.is_a?(AssetReference)
|
|
30
|
-
next if context.asset_index.resolve?(ref.path)
|
|
20
|
+
context.references.each do |ref|
|
|
21
|
+
next unless ref.is_a?(AssetReference)
|
|
22
|
+
next if context.asset_index.resolve?(ref.path)
|
|
31
23
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
end
|
|
39
|
-
end
|
|
24
|
+
issues << issue(
|
|
25
|
+
"unresolved image reference #{ref.path}",
|
|
26
|
+
code: "GLS-103", severity: severity,
|
|
27
|
+
location: fname,
|
|
28
|
+
suggestion: "add '#{ref.path}' to the dataset's images/ directory"
|
|
29
|
+
)
|
|
40
30
|
end
|
|
41
31
|
|
|
42
|
-
|
|
43
|
-
asset_refs.each do |ref|
|
|
32
|
+
context.asset_references.each do |ref|
|
|
44
33
|
next if context.asset_index.resolve?(ref.path)
|
|
45
34
|
|
|
46
35
|
issues << issue(
|
data/lib/glossarist/version.rb
CHANGED
data/lib/glossarist.rb
CHANGED
|
@@ -27,35 +27,27 @@ module Glossarist
|
|
|
27
27
|
autoload :ReferenceResolver, "glossarist/reference_resolver"
|
|
28
28
|
autoload :ResolutionAdapter, "glossarist/resolution_adapter"
|
|
29
29
|
autoload :ConceptDate, "glossarist/concept_date"
|
|
30
|
-
autoload :ConceptManager, "glossarist/concept_manager"
|
|
31
30
|
autoload :ConceptSet, "glossarist/concept_set"
|
|
32
31
|
autoload :ConceptSource, "glossarist/concept_source"
|
|
33
32
|
autoload :ConceptStore, "glossarist/concept_store"
|
|
34
33
|
autoload :ConceptValidator, "glossarist/concept_validator"
|
|
35
|
-
autoload :ConceptCollector, "glossarist/concept_collector"
|
|
36
34
|
autoload :ConceptComparator, "glossarist/concept_comparator"
|
|
37
|
-
autoload :ContextConfiguration,
|
|
35
|
+
autoload :ContextConfiguration, "glossarist/context_configuration"
|
|
38
36
|
autoload :ComparisonResult, "glossarist/comparison_result"
|
|
39
37
|
autoload :ConceptDiff, "glossarist/concept_diff"
|
|
40
38
|
autoload :ConceptDocument, "glossarist/concept_document"
|
|
41
|
-
autoload :ConceptEnricher,
|
|
39
|
+
autoload :ConceptEnricher, "glossarist/concept_enricher"
|
|
42
40
|
autoload :Config, "glossarist/config"
|
|
43
41
|
autoload :DatasetValidator, "glossarist/dataset_validator"
|
|
44
42
|
autoload :CustomLocality, "glossarist/custom_locality"
|
|
45
43
|
autoload :DetailedDefinition, "glossarist/detailed_definition"
|
|
46
44
|
autoload :Designation, "glossarist/designation"
|
|
47
|
-
autoload :
|
|
45
|
+
autoload :Errors, "glossarist/errors"
|
|
48
46
|
autoload :GcrPackage, "glossarist/gcr_package"
|
|
49
47
|
autoload :GcrPackageDefinition, "glossarist/gcr_package_definition"
|
|
50
48
|
autoload :GcrMetadata, "glossarist/gcr_metadata"
|
|
51
49
|
autoload :GcrStatistics, "glossarist/gcr_statistics"
|
|
52
50
|
autoload :GcrValidator, "glossarist/gcr_validator"
|
|
53
|
-
autoload :InvalidTypeError, "glossarist/error/invalid_type_error"
|
|
54
|
-
autoload :InvalidLanguageCodeError,
|
|
55
|
-
"glossarist/error/invalid_language_code_error"
|
|
56
|
-
autoload :ParseError, "glossarist/error/parse_error"
|
|
57
|
-
autoload :CacheVersionMismatchError,
|
|
58
|
-
"glossarist/error/cache_version_mismatch_error"
|
|
59
51
|
autoload :Locality, "glossarist/locality"
|
|
60
52
|
autoload :LocalizedConcept, "glossarist/localized_concept"
|
|
61
53
|
autoload :ManagedConcept, "glossarist/managed_concept"
|
|
@@ -72,8 +64,8 @@ module Glossarist
|
|
|
72
64
|
autoload :Utilities, "glossarist/utilities"
|
|
73
65
|
autoload :Validation, "glossarist/validation"
|
|
74
66
|
autoload :RegisterData, "glossarist/register_data"
|
|
75
|
-
autoload :Section,
|
|
76
|
-
autoload :DatasetRegister,
|
|
67
|
+
autoload :Section, "glossarist/section"
|
|
68
|
+
autoload :DatasetRegister, "glossarist/dataset_register"
|
|
77
69
|
autoload :ValidationResult, "glossarist/validation_result"
|
|
78
70
|
autoload :V1, "glossarist/v1"
|
|
79
71
|
autoload :V2, "glossarist/v2"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: glossarist
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.8.
|
|
4
|
+
version: 2.8.11
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-06-
|
|
11
|
+
date: 2026-06-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: lutaml-model
|
|
@@ -199,14 +199,12 @@ files:
|
|
|
199
199
|
- lib/glossarist/collections/typed_collection.rb
|
|
200
200
|
- lib/glossarist/comparison_result.rb
|
|
201
201
|
- lib/glossarist/concept.rb
|
|
202
|
-
- lib/glossarist/concept_collector.rb
|
|
203
202
|
- lib/glossarist/concept_comparator.rb
|
|
204
203
|
- lib/glossarist/concept_data.rb
|
|
205
204
|
- lib/glossarist/concept_date.rb
|
|
206
205
|
- lib/glossarist/concept_diff.rb
|
|
207
206
|
- lib/glossarist/concept_document.rb
|
|
208
207
|
- lib/glossarist/concept_enricher.rb
|
|
209
|
-
- lib/glossarist/concept_manager.rb
|
|
210
208
|
- lib/glossarist/concept_ref.rb
|
|
211
209
|
- lib/glossarist/concept_reference.rb
|
|
212
210
|
- lib/glossarist/concept_set.rb
|
|
@@ -230,11 +228,13 @@ files:
|
|
|
230
228
|
- lib/glossarist/designation/suffix.rb
|
|
231
229
|
- lib/glossarist/designation/symbol.rb
|
|
232
230
|
- lib/glossarist/detailed_definition.rb
|
|
233
|
-
- lib/glossarist/
|
|
234
|
-
- lib/glossarist/
|
|
235
|
-
- lib/glossarist/
|
|
236
|
-
- lib/glossarist/
|
|
237
|
-
- lib/glossarist/
|
|
231
|
+
- lib/glossarist/errors.rb
|
|
232
|
+
- lib/glossarist/errors/base.rb
|
|
233
|
+
- lib/glossarist/errors/cache_version_mismatch_error.rb
|
|
234
|
+
- lib/glossarist/errors/invalid_language_code_error.rb
|
|
235
|
+
- lib/glossarist/errors/invalid_type_error.rb
|
|
236
|
+
- lib/glossarist/errors/load_error.rb
|
|
237
|
+
- lib/glossarist/errors/parse_error.rb
|
|
238
238
|
- lib/glossarist/gcr_metadata.rb
|
|
239
239
|
- lib/glossarist/gcr_package.rb
|
|
240
240
|
- lib/glossarist/gcr_package_definition.rb
|
|
@@ -281,11 +281,14 @@ files:
|
|
|
281
281
|
- lib/glossarist/register_data.rb
|
|
282
282
|
- lib/glossarist/related_concept.rb
|
|
283
283
|
- lib/glossarist/resolution_adapter.rb
|
|
284
|
+
- lib/glossarist/resolution_adapter/bibliography.rb
|
|
284
285
|
- lib/glossarist/resolution_adapter/local.rb
|
|
285
286
|
- lib/glossarist/resolution_adapter/package.rb
|
|
286
287
|
- lib/glossarist/resolution_adapter/remote.rb
|
|
287
288
|
- lib/glossarist/resolution_adapter/route.rb
|
|
288
289
|
- lib/glossarist/schema_migration.rb
|
|
290
|
+
- lib/glossarist/schema_migration/v0_to_v1.rb
|
|
291
|
+
- lib/glossarist/schema_migration/v2_to_v3.rb
|
|
289
292
|
- lib/glossarist/section.rb
|
|
290
293
|
- lib/glossarist/sts.rb
|
|
291
294
|
- lib/glossarist/sts/extracted_designation.rb
|
|
@@ -343,6 +346,7 @@ files:
|
|
|
343
346
|
- lib/glossarist/validation/rules/base.rb
|
|
344
347
|
- lib/glossarist/validation/rules/bibliography_yaml_rule.rb
|
|
345
348
|
- lib/glossarist/validation/rules/citation_completeness_rule.rb
|
|
349
|
+
- lib/glossarist/validation/rules/cite_ref_integrity_rule.rb
|
|
346
350
|
- lib/glossarist/validation/rules/concept_context.rb
|
|
347
351
|
- lib/glossarist/validation/rules/concept_count_rule.rb
|
|
348
352
|
- lib/glossarist/validation/rules/concept_id_rule.rb
|