glossarist 2.6.4 → 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 -1
  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 -15
@@ -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.4"
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.4
4
+ version: 2.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.8.5
27
- - !ruby/object:Gem::Dependency
28
- name: sts
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 0.5.6
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 0.5.6
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: relaton
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -78,6 +64,20 @@ dependencies:
78
64
  - - "<"
79
65
  - !ruby/object:Gem::Version
80
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
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: tbx
83
83
  requirement: !ruby/object:Gem::Requirement
@@ -133,6 +133,8 @@ files:
133
133
  - glossarist.gemspec
134
134
  - lib/glossarist.rb
135
135
  - lib/glossarist/asset.rb
136
+ - lib/glossarist/asset_reference.rb
137
+ - lib/glossarist/bibliographic_reference.rb
136
138
  - lib/glossarist/citation.rb
137
139
  - lib/glossarist/cli.rb
138
140
  - lib/glossarist/cli/export_command.rb
@@ -226,6 +228,49 @@ files:
226
228
  - lib/glossarist/v1/concept.rb
227
229
  - lib/glossarist/v1/cross_references.rb
228
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
229
274
  - lib/glossarist/validation_result.rb
230
275
  - lib/glossarist/version.rb
231
276
  - relaton-bib-2.0.0.gem