tc211-termbase 0.2.3 → 0.2.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.
- checksums.yaml +4 -4
- data/lib/tc211/termbase/concept.rb +3 -1
- data/lib/tc211/termbase/concept_collection.rb +1 -1
- data/lib/tc211/termbase/glossarist/concept.rb +33 -0
- data/lib/tc211/termbase/glossarist/managed_concept.rb +34 -0
- data/lib/tc211/termbase/term.rb +36 -5
- data/lib/tc211/termbase/version.rb +1 -1
- data/lib/tc211/termbase.rb +17 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f68f93b8b87b009b39bc7332df0a30083e25d25d9107fe964a9fc048c587d7fa
|
4
|
+
data.tar.gz: 5fbcd25491ac31ed2f729e85db945be245eb75cab528351b0d625312aee6a6bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afba8f8fc41d22fd6cbbd9bc9c40db3d7a3ef31011586a4fdb9e6d3d19f7531a066cb9deaf43abc603eee982d31fea60c172876ccc2fa496fe7c23b51c7433ab
|
7
|
+
data.tar.gz: fd1210037b404f703f951fc881681430e9022677650edd535999f43977a5e0a56b557e6e9df524a77ee545c95cb5c1aaea9e71ad41e0494d1fdafe51e7f43eb1
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Tc211
|
2
|
+
module Termbase
|
3
|
+
module Glossarist
|
4
|
+
class Concept < ::Glossarist::LocalizedConcept
|
5
|
+
attr_accessor :status, :dateAccepted
|
6
|
+
|
7
|
+
def uuid
|
8
|
+
@uuid ||= ::Glossarist::Utilities::UUID.uuid_v5(
|
9
|
+
::Glossarist::Utilities::UUID::OID_NAMESPACE,
|
10
|
+
to_h(only_data: true).to_yaml,
|
11
|
+
)
|
12
|
+
end
|
13
|
+
|
14
|
+
def to_h(only_data: false)
|
15
|
+
data_hash = super()
|
16
|
+
return data_hash if only_data
|
17
|
+
|
18
|
+
data_hash.merge(register_info)
|
19
|
+
end
|
20
|
+
|
21
|
+
def register_info
|
22
|
+
date_accepted = dates.find(&:accepted?)
|
23
|
+
|
24
|
+
{
|
25
|
+
"dateAccepted" => date_accepted&.date&.dup,
|
26
|
+
"id" => uuid,
|
27
|
+
"status" => entry_status,
|
28
|
+
}.compact
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Tc211
|
2
|
+
module Termbase
|
3
|
+
module Glossarist
|
4
|
+
class ManagedConcept < ::Glossarist::ManagedConcept
|
5
|
+
attr_accessor :status
|
6
|
+
|
7
|
+
def uuid
|
8
|
+
@uuid ||= ::Glossarist::Utilities::UUID.uuid_v5(
|
9
|
+
::Glossarist::Utilities::UUID::OID_NAMESPACE,
|
10
|
+
to_h(only_data: true).to_yaml,
|
11
|
+
)
|
12
|
+
end
|
13
|
+
|
14
|
+
def to_h(only_data: false)
|
15
|
+
data_hash = super()
|
16
|
+
return data_hash if only_data
|
17
|
+
|
18
|
+
data_hash.merge(register_info)
|
19
|
+
end
|
20
|
+
|
21
|
+
def register_info
|
22
|
+
date_accepted = default_lang.dates.find(&:accepted?)
|
23
|
+
|
24
|
+
{
|
25
|
+
"dateAccepted" => date_accepted&.date&.dup,
|
26
|
+
"id" => uuid,
|
27
|
+
"related" => related&.map(&:to_h) || [],
|
28
|
+
"status" => default_lang.entry_status,
|
29
|
+
}.compact
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/tc211/termbase/term.rb
CHANGED
@@ -213,6 +213,11 @@ module Tc211::Termbase
|
|
213
213
|
@review_indicator = value
|
214
214
|
end
|
215
215
|
|
216
|
+
def authoritative_source=(source)
|
217
|
+
clean_source!(source)
|
218
|
+
@authoritative_source = source
|
219
|
+
end
|
220
|
+
|
216
221
|
# authoritative-source-similarity
|
217
222
|
# Must be one of the following codes:
|
218
223
|
# identical = 1
|
@@ -228,6 +233,11 @@ module Tc211::Termbase
|
|
228
233
|
@authoritative_source_similarity = value
|
229
234
|
end
|
230
235
|
|
236
|
+
def lineage_source=(source)
|
237
|
+
clean_source!(source)
|
238
|
+
@lineage_source = source
|
239
|
+
end
|
240
|
+
|
231
241
|
# lineage-source-similarity
|
232
242
|
# Must be one of the following codes:
|
233
243
|
# identical = 1
|
@@ -243,6 +253,15 @@ module Tc211::Termbase
|
|
243
253
|
@lineage_source_similarity = value
|
244
254
|
end
|
245
255
|
|
256
|
+
def clean_source!(source)
|
257
|
+
if source.is_a?(Hash)
|
258
|
+
source["ref"]&.gsub!(/\(E\),?\s*/, "")
|
259
|
+
source["clause"]&.gsub!(/\(E\),?\s*/, "")
|
260
|
+
else
|
261
|
+
source.gsub!(/\(E\),?\s*/, "")
|
262
|
+
end
|
263
|
+
end
|
264
|
+
|
246
265
|
## value Must be one of pending tentative final
|
247
266
|
def review_status=(value)
|
248
267
|
unless ["", "pending", "tentative", "final"].include?(value)
|
@@ -339,6 +358,14 @@ module Tc211::Termbase
|
|
339
358
|
}
|
340
359
|
end
|
341
360
|
|
361
|
+
def authoritative_source_array
|
362
|
+
return unless authoritative_source
|
363
|
+
|
364
|
+
[
|
365
|
+
"link" => authoritative_source["link"],
|
366
|
+
]
|
367
|
+
end
|
368
|
+
|
342
369
|
def lineage_source_hash
|
343
370
|
return unless lineage_source
|
344
371
|
|
@@ -352,7 +379,7 @@ module Tc211::Termbase
|
|
352
379
|
end
|
353
380
|
|
354
381
|
def to_localized_concept_hash
|
355
|
-
|
382
|
+
concept_hash = to_hash
|
356
383
|
|
357
384
|
%w[
|
358
385
|
review_status
|
@@ -365,13 +392,17 @@ module Tc211::Termbase
|
|
365
392
|
lineage_source_similarity
|
366
393
|
country_code
|
367
394
|
].each do |key|
|
368
|
-
|
395
|
+
concept_hash.delete(key)
|
369
396
|
end
|
370
397
|
|
371
|
-
|
372
|
-
|
398
|
+
concept_hash["id"] = concept_hash["id"].to_s
|
399
|
+
concept_hash["sources"] = sources_hash
|
400
|
+
|
401
|
+
if authoritative_source_array
|
402
|
+
concept_hash["authoritativeSource"] = authoritative_source_array
|
403
|
+
end
|
373
404
|
|
374
|
-
|
405
|
+
concept_hash
|
375
406
|
end
|
376
407
|
end
|
377
408
|
end
|
data/lib/tc211/termbase.rb
CHANGED
@@ -1,10 +1,27 @@
|
|
1
1
|
require "glossarist"
|
2
2
|
require "tc211/termbase/version"
|
3
3
|
|
4
|
+
require_relative "termbase/glossarist/concept"
|
5
|
+
require_relative "termbase/glossarist/managed_concept"
|
6
|
+
|
4
7
|
module Tc211
|
5
8
|
module Termbase
|
6
9
|
class Error < StandardError; end
|
10
|
+
|
7
11
|
# Your code goes here...
|
12
|
+
::Glossarist.configure do |config|
|
13
|
+
config.register_extension_attributes(["authoritativeSource"])
|
14
|
+
|
15
|
+
config.register_class(
|
16
|
+
:localized_concept,
|
17
|
+
Tc211::Termbase::Glossarist::Concept,
|
18
|
+
)
|
19
|
+
|
20
|
+
config.register_class(
|
21
|
+
:managed_concept,
|
22
|
+
Tc211::Termbase::Glossarist::ManagedConcept,
|
23
|
+
)
|
24
|
+
end
|
8
25
|
end
|
9
26
|
end
|
10
27
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tc211-termbase
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: creek
|
@@ -117,6 +117,8 @@ files:
|
|
117
117
|
- lib/tc211/termbase/cli/command.rb
|
118
118
|
- lib/tc211/termbase/concept.rb
|
119
119
|
- lib/tc211/termbase/concept_collection.rb
|
120
|
+
- lib/tc211/termbase/glossarist/concept.rb
|
121
|
+
- lib/tc211/termbase/glossarist/managed_concept.rb
|
120
122
|
- lib/tc211/termbase/information_sheet.rb
|
121
123
|
- lib/tc211/termbase/metadata_section.rb
|
122
124
|
- lib/tc211/termbase/relaton_db.rb
|