glossarist 2.14.6 → 2.14.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c91f798fb9a6e12290005776acd08323536fae75a0c0aca50244656dd9c37109
4
- data.tar.gz: 1407eba14312a21c622ac581c16d65be60d757f92af4cc19a58eec7376d9d81c
3
+ metadata.gz: 1d7e9c15feb04132c6f4c646fff03f75e9603d82cd5f3b5227ae68d8d86de0f1
4
+ data.tar.gz: 37533585b2a03023fe7df4b02ba2ba0433145b8c53899c2035ea0345f95dcc65
5
5
  SHA512:
6
- metadata.gz: a4b2a249a197c62a304addd573c7a67243cb7c511f2f52838eb19cd9a660b4ca94ea43cd4512b8f284c7b0d77c1b5bb9888e07f2a3f94f472e2170fa0a51e996
7
- data.tar.gz: aa50a0cd63c34064f5bc72cc90757e937af34ba98c2bea4f2604ca9bfe7b1808b329062893fb1b3cc9c355539a939dc1b4f8c635cd3446f4b87aa4ff0a424074
6
+ metadata.gz: ab12bf6c2d0381345d9a555e03c48bb4fa4ef6ecd23ea8a013e9e0b501ebabb5784707af479f5fbcb8121f862cc02b78120a35eee83ed3eeaa97751b7ab4ffc6
7
+ data.tar.gz: 0baef80b82bade98dc4b90c60517ae8793ec84ec57d34a7683d4e254aee2959a4fb454dbdf6791b3d4cf89854144a1735b59682eebbea79fbd39659c9257bf9f
data/exe/glossarist CHANGED
@@ -1,4 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require_relative "../lib/glossarist"
4
- Glossarist::CLI.start(ARGV)
4
+
5
+ begin
6
+ Glossarist::CLI.start(ARGV)
7
+ rescue Glossarist::Errors::CliError => e
8
+ warn "Error: #{e.message}"
9
+ exit 1
10
+ end
@@ -45,8 +45,7 @@ module Glossarist
45
45
 
46
46
  validate_outputs!(formats, output_dir, name) if validate?
47
47
  rescue ArgumentError => e
48
- warn "Error: #{e.message}"
49
- exit 1
48
+ raise Errors::CliError, e.message
50
49
  end
51
50
 
52
51
  private
@@ -248,10 +247,10 @@ module Glossarist
248
247
  files << File.join(output_dir, "#{name}.ttl") if File.exist?(File.join(output_dir, "#{name}.ttl"))
249
248
  files.concat(Dir.glob(File.join(output_dir, "concepts", "*.ttl")))
250
249
  report = validator.validate_files(files)
251
- unless report.conformant?
252
- warn report.to_s
253
- exit 1
254
- end
250
+ return if report.conformant?
251
+
252
+ warn report.to_s
253
+ raise Errors::CliError, "emitted Turtle failed SHACL validation"
255
254
  end
256
255
  end
257
256
  end
@@ -21,8 +21,7 @@ module Glossarist
21
21
 
22
22
  print_summary(result)
23
23
  rescue ArgumentError => e
24
- warn "Error: #{e.message}"
25
- exit 1
24
+ raise Errors::CliError, e.message
26
25
  end
27
26
 
28
27
  private
@@ -26,8 +26,7 @@ module Glossarist
26
26
 
27
27
  puts "Created #{@options[:output]}"
28
28
  rescue ArgumentError => e
29
- warn "Error: #{e.message}"
30
- exit 1
29
+ raise Errors::CliError, e.message
31
30
  end
32
31
 
33
32
  private
@@ -18,8 +18,7 @@ module Glossarist
18
18
  )
19
19
  report(result)
20
20
  rescue ArgumentError => e
21
- warn "Error: #{e.message}"
22
- exit 1
21
+ raise Errors::CliError, e.message
23
22
  end
24
23
 
25
24
  private
@@ -22,7 +22,10 @@ module Glossarist
22
22
 
23
23
  $stderr.print "\r#{' ' * 60}\r" if text_output
24
24
  report(result)
25
- exit(1) unless result.errors.empty? && !strict_failure?(result)
25
+ return if result.errors.empty? && !strict_failure?(result)
26
+
27
+ raise Errors::CliError,
28
+ "dataset invalid: #{result.errors.size} error(s)"
26
29
  end
27
30
 
28
31
  private
@@ -22,8 +22,11 @@ module Glossarist
22
22
 
23
23
  map %i[date_accepted dateAccepted],
24
24
  with: { from: :date_accepted_from_yaml, to: :date_accepted_to_yaml }
25
- map :uuid, to: :uuid, with: { to: :uuid_to_yaml, from: :uuid_from_yaml }
26
- map :id, to: :id, with: { to: :id_to_yaml, from: :id_from_yaml }
25
+ # The concept's UUID serializes to the YAML "id" key (uuid_to_yaml),
26
+ # so reading must map "id" back to #uuid — not just #id — or a
27
+ # round-tripped document lazily derives a different, content-based
28
+ # UUID (#247). ManagedConcept already maps both keys this way.
29
+ map %i[id uuid], to: :uuid, with: { to: :uuid_to_yaml, from: :uuid_from_yaml }
27
30
  map :identifier, to: :id, with: { to: :id_to_yaml, from: :id_from_yaml }
28
31
  end
29
32
 
@@ -75,6 +78,7 @@ module Glossarist
75
78
 
76
79
  def uuid_from_yaml(model, value)
77
80
  model.uuid = value
81
+ model.id = value
78
82
  end
79
83
 
80
84
  def id_to_yaml(model, doc); end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Glossarist
4
+ module Errors
5
+ # Raised by CLI command classes on invalid usage or failed runs.
6
+ # Library classes stay exception-only; exe/glossarist owns the
7
+ # process exit code. Calling exit from a command class would kill
8
+ # any host process exercising it in-process (glossarist-ruby#248).
9
+ class CliError < Base
10
+ end
11
+ end
12
+ end
@@ -10,5 +10,6 @@ module Glossarist
10
10
  "glossarist/errors/invalid_language_code_error"
11
11
  autoload :CacheVersionMismatchError,
12
12
  "glossarist/errors/cache_version_mismatch_error"
13
+ autoload :CliError, "glossarist/errors/cli_error"
13
14
  end
14
15
  end
@@ -4,5 +4,5 @@
4
4
  #
5
5
 
6
6
  module Glossarist
7
- VERSION = "2.14.6"
7
+ VERSION = "2.14.7"
8
8
  end
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.14.6
4
+ version: 2.14.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-10-10 00:00:00.000000000 Z
11
+ date: 2026-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lutaml-model
@@ -259,6 +259,7 @@ files:
259
259
  - lib/glossarist/errors.rb
260
260
  - lib/glossarist/errors/base.rb
261
261
  - lib/glossarist/errors/cache_version_mismatch_error.rb
262
+ - lib/glossarist/errors/cli_error.rb
262
263
  - lib/glossarist/errors/invalid_language_code_error.rb
263
264
  - lib/glossarist/errors/invalid_type_error.rb
264
265
  - lib/glossarist/errors/load_error.rb