glossarist 2.6.3 → 2.6.5

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.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +11 -111
  3. data/Gemfile +0 -2
  4. data/README.adoc +207 -1
  5. data/glossarist.gemspec +1 -0
  6. data/lib/glossarist/asset_reference.rb +16 -0
  7. data/lib/glossarist/bibliographic_reference.rb +16 -0
  8. data/lib/glossarist/concept_enricher.rb +1 -0
  9. data/lib/glossarist/concept_reference.rb +4 -0
  10. data/lib/glossarist/concept_validator.rb +27 -56
  11. data/lib/glossarist/dataset_validator.rb +30 -34
  12. data/lib/glossarist/gcr_validator.rb +26 -101
  13. data/lib/glossarist/reference_extractor.rb +80 -10
  14. data/lib/glossarist/reference_resolver.rb +1 -0
  15. data/lib/glossarist/validation/asset_index.rb +113 -0
  16. data/lib/glossarist/validation/bibliography_index.rb +121 -0
  17. data/lib/glossarist/validation/rules/asciidoc_xref_rule.rb +60 -0
  18. data/lib/glossarist/validation/rules/authoritative_source_rule.rb +47 -0
  19. data/lib/glossarist/validation/rules/base.rb +46 -0
  20. data/lib/glossarist/validation/rules/bibliography_yaml_rule.rb +37 -0
  21. data/lib/glossarist/validation/rules/citation_completeness_rule.rb +63 -0
  22. data/lib/glossarist/validation/rules/concept_context.rb +45 -0
  23. data/lib/glossarist/validation/rules/concept_count_rule.rb +34 -0
  24. data/lib/glossarist/validation/rules/concept_id_rule.rb +29 -0
  25. data/lib/glossarist/validation/rules/concept_id_uniqueness_rule.rb +42 -0
  26. data/lib/glossarist/validation/rules/concept_mention_rule.rb +44 -0
  27. data/lib/glossarist/validation/rules/concept_status_rule.rb +36 -0
  28. data/lib/glossarist/validation/rules/concept_uri_rule.rb +30 -0
  29. data/lib/glossarist/validation/rules/dataset_context.rb +99 -0
  30. data/lib/glossarist/validation/rules/date_type_rule.rb +54 -0
  31. data/lib/glossarist/validation/rules/date_validity_rule.rb +66 -0
  32. data/lib/glossarist/validation/rules/definition_content_rule.rb +41 -0
  33. data/lib/glossarist/validation/rules/designation_status_rule.rb +45 -0
  34. data/lib/glossarist/validation/rules/designation_type_rule.rb +55 -0
  35. data/lib/glossarist/validation/rules/duplicate_term_rule.rb +63 -0
  36. data/lib/glossarist/validation/rules/entry_status_rule.rb +39 -0
  37. data/lib/glossarist/validation/rules/filename_id_rule.rb +35 -0
  38. data/lib/glossarist/validation/rules/gcr_context.rb +92 -0
  39. data/lib/glossarist/validation/rules/image_reference_rule.rb +73 -0
  40. data/lib/glossarist/validation/rules/l10n_uuid_integrity_rule.rb +40 -0
  41. data/lib/glossarist/validation/rules/language_code_format_rule.rb +39 -0
  42. data/lib/glossarist/validation/rules/language_coverage_rule.rb +37 -0
  43. data/lib/glossarist/validation/rules/language_list_rule.rb +46 -0
  44. data/lib/glossarist/validation/rules/localization_presence_rule.rb +25 -0
  45. data/lib/glossarist/validation/rules/orphaned_bibliography_rule.rb +64 -0
  46. data/lib/glossarist/validation/rules/orphaned_images_rule.rb +68 -0
  47. data/lib/glossarist/validation/rules/orphaned_l10n_files_rule.rb +39 -0
  48. data/lib/glossarist/validation/rules/preferred_term_rule.rb +41 -0
  49. data/lib/glossarist/validation/rules/registry.rb +42 -0
  50. data/lib/glossarist/validation/rules/related_concept_cycle_rule.rb +102 -0
  51. data/lib/glossarist/validation/rules/related_concept_rule.rb +40 -0
  52. data/lib/glossarist/validation/rules/related_concept_symmetry_rule.rb +87 -0
  53. data/lib/glossarist/validation/rules/source_type_rule.rb +63 -0
  54. data/lib/glossarist/validation/rules/terms_presence_rule.rb +39 -0
  55. data/lib/glossarist/validation/rules.rb +85 -0
  56. data/lib/glossarist/validation/validation_issue.rb +39 -0
  57. data/lib/glossarist/validation.rb +12 -0
  58. data/lib/glossarist/validation_result.rb +26 -9
  59. data/lib/glossarist/version.rb +1 -1
  60. data/lib/glossarist.rb +3 -0
  61. metadata +60 -1
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Glossarist
4
+ module Validation
5
+ class ValidationIssue
6
+ attr_reader :severity, :code, :message, :location, :suggestion
7
+
8
+ def initialize(severity:, message:, code: nil, location: nil,
9
+ suggestion: nil)
10
+ @severity = severity
11
+ @code = code
12
+ @message = message
13
+ @location = location
14
+ @suggestion = suggestion
15
+ end
16
+
17
+ def error?
18
+ severity == "error"
19
+ end
20
+
21
+ def warning?
22
+ severity == "warning"
23
+ end
24
+
25
+ def info?
26
+ severity == "info"
27
+ end
28
+
29
+ def to_s
30
+ parts = ["[#{severity.upcase}]"]
31
+ parts << "[#{code}]" if code
32
+ parts << (location ? "#{location}: " : "")
33
+ parts << message
34
+ parts << " (#{suggestion})" if suggestion
35
+ parts.join(" ")
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ module Glossarist
6
+ module Validation
7
+ autoload :ValidationIssue, "glossarist/validation/validation_issue"
8
+ autoload :Rules, "glossarist/validation/rules"
9
+ autoload :BibliographyIndex, "glossarist/validation/bibliography_index"
10
+ autoload :AssetIndex, "glossarist/validation/asset_index"
11
+ end
12
+ end
@@ -2,28 +2,45 @@
2
2
 
3
3
  module Glossarist
4
4
  class ValidationResult
5
- attr_reader :errors, :warnings
5
+ attr_reader :issues
6
6
 
7
- def initialize(errors: [], warnings: [])
8
- @errors = errors
9
- @warnings = warnings
7
+ def initialize(errors: [], warnings: [], issues: [])
8
+ @issues = []
9
+ errors.each { |e| add_error(e) }
10
+ warnings.each { |w| add_warning(w) }
11
+ issues.each { |i| add_issue(i) }
10
12
  end
11
13
 
12
14
  def valid?
13
- @errors.empty?
15
+ @issues.none?(&:error?)
16
+ end
17
+
18
+ def errors
19
+ @issues.select(&:error?).map(&:message)
20
+ end
21
+
22
+ def warnings
23
+ @issues.select(&:warning?).map(&:message)
14
24
  end
15
25
 
16
26
  def add_error(message)
17
- @errors << message
27
+ @issues << Validation::ValidationIssue.new(
28
+ severity: "error", message: message,
29
+ )
18
30
  end
19
31
 
20
32
  def add_warning(message)
21
- @warnings << message
33
+ @issues << Validation::ValidationIssue.new(
34
+ severity: "warning", message: message,
35
+ )
36
+ end
37
+
38
+ def add_issue(issue)
39
+ @issues << issue
22
40
  end
23
41
 
24
42
  def merge(other)
25
- other.errors.each { |e| add_error(e) }
26
- other.warnings.each { |w| add_warning(w) }
43
+ other.issues.each { |i| @issues << i }
27
44
  self
28
45
  end
29
46
 
@@ -4,5 +4,5 @@
4
4
  #
5
5
 
6
6
  module Glossarist
7
- VERSION = "2.6.3"
7
+ VERSION = "2.6.5"
8
8
  end
data/lib/glossarist.rb CHANGED
@@ -9,6 +9,8 @@ require "lutaml/model"
9
9
 
10
10
  module Glossarist
11
11
  autoload :Asset, "glossarist/asset"
12
+ autoload :AssetReference, "glossarist/asset_reference"
13
+ autoload :BibliographicReference, "glossarist/bibliographic_reference"
12
14
  autoload :Citation, "glossarist/citation"
13
15
  autoload :CLI, "glossarist/cli"
14
16
  autoload :CollectionConfig, "glossarist/collection_config"
@@ -57,6 +59,7 @@ module Glossarist
57
59
  autoload :SchemaMigration, "glossarist/schema_migration"
58
60
  autoload :UrnResolver, "glossarist/urn_resolver"
59
61
  autoload :Utilities, "glossarist/utilities"
62
+ autoload :Validation, "glossarist/validation"
60
63
  autoload :RegisterData, "glossarist/register_data"
61
64
  autoload :ValidationResult, "glossarist/validation_result"
62
65
  autoload :V1, "glossarist/v1"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glossarist
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.3
4
+ version: 2.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose
@@ -64,6 +64,20 @@ dependencies:
64
64
  - - "<"
65
65
  - !ruby/object:Gem::Version
66
66
  version: '3'
67
+ - !ruby/object:Gem::Dependency
68
+ name: sts
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: 0.5.6
74
+ type: :runtime
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: 0.5.6
67
81
  - !ruby/object:Gem::Dependency
68
82
  name: tbx
69
83
  requirement: !ruby/object:Gem::Requirement
@@ -119,6 +133,8 @@ files:
119
133
  - glossarist.gemspec
120
134
  - lib/glossarist.rb
121
135
  - lib/glossarist/asset.rb
136
+ - lib/glossarist/asset_reference.rb
137
+ - lib/glossarist/bibliographic_reference.rb
122
138
  - lib/glossarist/citation.rb
123
139
  - lib/glossarist/cli.rb
124
140
  - lib/glossarist/cli/export_command.rb
@@ -212,6 +228,49 @@ files:
212
228
  - lib/glossarist/v1/concept.rb
213
229
  - lib/glossarist/v1/cross_references.rb
214
230
  - lib/glossarist/v1/register.rb
231
+ - lib/glossarist/validation.rb
232
+ - lib/glossarist/validation/asset_index.rb
233
+ - lib/glossarist/validation/bibliography_index.rb
234
+ - lib/glossarist/validation/rules.rb
235
+ - lib/glossarist/validation/rules/asciidoc_xref_rule.rb
236
+ - lib/glossarist/validation/rules/authoritative_source_rule.rb
237
+ - lib/glossarist/validation/rules/base.rb
238
+ - lib/glossarist/validation/rules/bibliography_yaml_rule.rb
239
+ - lib/glossarist/validation/rules/citation_completeness_rule.rb
240
+ - lib/glossarist/validation/rules/concept_context.rb
241
+ - lib/glossarist/validation/rules/concept_count_rule.rb
242
+ - lib/glossarist/validation/rules/concept_id_rule.rb
243
+ - lib/glossarist/validation/rules/concept_id_uniqueness_rule.rb
244
+ - lib/glossarist/validation/rules/concept_mention_rule.rb
245
+ - lib/glossarist/validation/rules/concept_status_rule.rb
246
+ - lib/glossarist/validation/rules/concept_uri_rule.rb
247
+ - lib/glossarist/validation/rules/dataset_context.rb
248
+ - lib/glossarist/validation/rules/date_type_rule.rb
249
+ - lib/glossarist/validation/rules/date_validity_rule.rb
250
+ - lib/glossarist/validation/rules/definition_content_rule.rb
251
+ - lib/glossarist/validation/rules/designation_status_rule.rb
252
+ - lib/glossarist/validation/rules/designation_type_rule.rb
253
+ - lib/glossarist/validation/rules/duplicate_term_rule.rb
254
+ - lib/glossarist/validation/rules/entry_status_rule.rb
255
+ - lib/glossarist/validation/rules/filename_id_rule.rb
256
+ - lib/glossarist/validation/rules/gcr_context.rb
257
+ - lib/glossarist/validation/rules/image_reference_rule.rb
258
+ - lib/glossarist/validation/rules/l10n_uuid_integrity_rule.rb
259
+ - lib/glossarist/validation/rules/language_code_format_rule.rb
260
+ - lib/glossarist/validation/rules/language_coverage_rule.rb
261
+ - lib/glossarist/validation/rules/language_list_rule.rb
262
+ - lib/glossarist/validation/rules/localization_presence_rule.rb
263
+ - lib/glossarist/validation/rules/orphaned_bibliography_rule.rb
264
+ - lib/glossarist/validation/rules/orphaned_images_rule.rb
265
+ - lib/glossarist/validation/rules/orphaned_l10n_files_rule.rb
266
+ - lib/glossarist/validation/rules/preferred_term_rule.rb
267
+ - lib/glossarist/validation/rules/registry.rb
268
+ - lib/glossarist/validation/rules/related_concept_cycle_rule.rb
269
+ - lib/glossarist/validation/rules/related_concept_rule.rb
270
+ - lib/glossarist/validation/rules/related_concept_symmetry_rule.rb
271
+ - lib/glossarist/validation/rules/source_type_rule.rb
272
+ - lib/glossarist/validation/rules/terms_presence_rule.rb
273
+ - lib/glossarist/validation/validation_issue.rb
215
274
  - lib/glossarist/validation_result.rb
216
275
  - lib/glossarist/version.rb
217
276
  - relaton-bib-2.0.0.gem