stepmod-utils 0.3.18 → 0.3.19

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7d666c11f9282db59fefb04c07c40a88f6167cd214d316f2b1a14ae7117ce898
4
- data.tar.gz: fe07f66170d74a97a95003b0f5e3594c5f2bbeaa3d431b716ce52f01d13d418d
3
+ metadata.gz: 4541a1fb0b4b3671d2aadf8cb833e93ca8b45f0c591b0da2df55e4614c2bcbf4
4
+ data.tar.gz: dbf98829e92bfcd54b468691011ab0de3781cf515b4d4b511ec394846f556ac6
5
5
  SHA512:
6
- metadata.gz: 7b2fea45d8a30e633e393afac572894481d7de3bf5a33cd19043b6b55cb5b2c948666eb705b4cc9e69a12fe7b43217ca80f8f9a47d7aab4507b1b00c4136476e
7
- data.tar.gz: 8e5334b99ece0ad5bff37d8ffd7cd70c64fd4998c3e0f4da58825802420f8537493a7858a6158b00ffcfdb3907a532e44067ab4ba07f7cc8f6091b5bb7912517
6
+ metadata.gz: 8410dd3702701b592aa67af784813058dcf2299ffe9dd60d45cab59b7035952111e17144b3b3b446e03135ae84a2a7ac5467f155b92ff768aa155d96437f0387
7
+ data.tar.gz: ea2fb98127cb384a70bd5aaf5febab17a92460170c820b250c52c0dca884bdc8d298f5ecdcf54f52ded4d1d22e75cbbce0fc65582499a04413e5e95cc8eb6b85
@@ -153,10 +153,13 @@ end
153
153
 
154
154
  log "INFO: written summary file to: 04x-stepmod-entities-resources.adoc"
155
155
 
156
- part_modules.each do |(bibdata, part_modules_arm, part_modules_mim)|
156
+ part_modules.sort_by do |(bibdata, part_modules_arm, part_modules_mim)|
157
+ bibdata.part.to_i
158
+ end.each do |(bibdata, part_modules_arm, part_modules_mim)|
157
159
  fn = "05x-stepmod-entities-modules-#{bibdata.part}.adoc"
158
160
  File.open(fn, "w") do |file|
159
161
  file.puts("")
162
+
160
163
  unless part_modules_arm.empty?
161
164
  schema_name = part_modules_arm.first.first
162
165
  concepts = part_modules_arm.first.last.to_a.map do |n|
@@ -181,6 +184,7 @@ part_modules.each do |(bibdata, part_modules_arm, part_modules_mim)|
181
184
  file.puts(replace_images(concepts.map(&:to_mn_adoc).join("\n")))
182
185
  end
183
186
  end
187
+
184
188
  log "INFO: written to: #{fn}"
185
189
  end
186
190
 
@@ -134,8 +134,8 @@ module Stepmod
134
134
  end
135
135
 
136
136
  unless ACCEPTED_STAGES.include? bibdata.doctype
137
- log "INFO: skipped #{bibdata.docid} as it is not \
138
- one of (#{ACCEPTED_STAGES.join(', ')})."
137
+ log "INFO: skipped #{bibdata.docid} as it is not " \
138
+ "one of (#{ACCEPTED_STAGES.join(', ')})."
139
139
  next
140
140
  end
141
141
 
@@ -200,7 +200,7 @@ module Stepmod
200
200
  log "INFO: FILE PATH IS #{file_path}"
201
201
  case file_path.to_s
202
202
  when /resource.xml$/
203
- log "INFO: Processing resource.xml for #{file_path}"
203
+ log "INFO: Processing resource.xml for #{fpath}"
204
204
 
205
205
  current_document.xpath("//schema").each do |schema_node|
206
206
  schema_name = schema_node["name"]
@@ -259,7 +259,7 @@ module Stepmod
259
259
  end
260
260
 
261
261
  when /module.xml$/
262
- log "INFO: Processing module.xml for #{file_path}"
262
+ log "INFO: Processing module.xml for #{fpath}"
263
263
  # Assumption: every schema is only linked by a single module document.
264
264
  # puts current_document.xpath('//module').length
265
265
  schema_name = current_document.xpath("//module").first["name"]
@@ -284,7 +284,8 @@ module Stepmod
284
284
  schema.entities.each do |entity|
285
285
  old_definition = entity.remarks.first
286
286
 
287
- domain = "application module: #{schema.id}"
287
+ # See: metanorma/iso-10303-2#90
288
+ domain = "application object: #{schema.id}"
288
289
  entity_definition = generate_entity_definition(entity, domain, old_definition)
289
290
 
290
291
  reference_anchor = bibdata.anchor
@@ -362,11 +363,11 @@ module Stepmod
362
363
 
363
364
  log "INFO: Completed processing XML file #{fpath}"
364
365
  if current_part_concepts.to_a.empty?
365
- log "INFO: Skipping #{fpath} (#{bibdata.docid}) \
366
- because it contains no concepts."
366
+ log "INFO: Skipping #{fpath} (#{bibdata.docid}) " \
367
+ "because it contains no concepts."
367
368
  elsif current_part_concepts.to_a.length < 3
368
- log "INFO: Skipping #{fpath} (#{bibdata.docid}) \
369
- because it only has #{current_part_concepts.to_a.length} terms."
369
+ log "INFO: Skipping #{fpath} (#{bibdata.docid}) " \
370
+ "because it only has #{current_part_concepts.to_a.length} terms."
370
371
 
371
372
  current_part_concepts.to_a.each do |x|
372
373
  general_concepts.store(x)
@@ -377,23 +378,24 @@ module Stepmod
377
378
  current_part_concepts]
378
379
  end
379
380
  end
381
+
380
382
  unless current_part_resources.to_a.empty?
381
383
  part_resources << [bibdata,
382
384
  current_part_resources]
383
385
  end
386
+
384
387
  if (current_part_modules_arm.to_a.size +
385
388
  current_part_modules_mim.to_a.size).positive?
386
389
  part_modules << [bibdata, current_part_modules_arm,
387
390
  current_part_modules_mim]
388
391
  end
392
+
389
393
  end
390
394
  end
391
395
 
392
396
  def find_or_initialize_concept(collection, localized_concept)
393
- concept_id = SecureRandom.uuid
394
-
395
397
  concept = collection
396
- .store(Glossarist::Concept.new(id: concept_id))
398
+ .store(Glossarist::Concept.new(id: SecureRandom.uuid))
397
399
  concept.add_l10n(localized_concept)
398
400
  end
399
401
 
@@ -471,19 +473,45 @@ module Stepmod
471
473
  # end
472
474
  end
473
475
 
476
+ def entity_name_to_text(entity_id)
477
+ entity_id.downcase.gsub(/_/, " ")
478
+ end
474
479
 
475
480
  # rubocop:disable Layout/LineLength
476
481
  def generate_entity_definition(entity, domain, old_definition)
477
482
  return "" if entity.nil?
478
483
 
479
- entity_text = if entity.subtype_of.size.zero?
480
- "entity data type that represents " +
481
- entity.id.indefinite_article + " **#{entity.id}** entity"
482
- else
483
- "entity data type that is a type of "+
484
- "**#{entity.subtype_of.map(&:id).join('** and **')}** that represents " +
485
- entity.id.indefinite_article + " **#{entity.id}** entity"
486
- end
484
+ # See: metanorma/iso-10303-2#90
485
+ # TODO: This is not DRY in case we have to further customize
486
+ entity_text = if domain =~ /\Aapplication object:/
487
+
488
+ if entity.subtype_of.size.zero?
489
+ "application object that represents the " +
490
+ "{{#{entity.id},#{entity_name_to_text(entity.id)}}} entity"
491
+ else
492
+ entity_subtypes = entity.subtype_of.map do |e|
493
+ "{{#{e.id},#{entity_name_to_text(e.id)}}}"
494
+ end
495
+ "application object that is a type of " +
496
+ "#{entity_subtypes.join(' and ')} that represents the " +
497
+ "{{#{entity.id},#{entity_name_to_text(entity.id)}}} entity"
498
+ end
499
+
500
+ else
501
+
502
+ # Not "application object"
503
+ if entity.subtype_of.size.zero?
504
+ "entity data type that represents " +
505
+ entity.id.indefinite_article + " {{#{entity.id}}} entity"
506
+ else
507
+ entity_subtypes = entity.subtype_of.map do |e|
508
+ "{{#{e.id}}}"
509
+ end
510
+ "entity data type that is a type of "+
511
+ "#{entity_subtypes.join(' and ')} that represents " +
512
+ entity.id.indefinite_article + " {{#{entity.id}}} entity"
513
+ end
514
+ end
487
515
 
488
516
  definition = <<~DEFINITION
489
517
  === #{entity.id}
@@ -1,5 +1,5 @@
1
1
  module Stepmod
2
2
  module Utils
3
- VERSION = "0.3.18".freeze
3
+ VERSION = "0.3.19".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stepmod-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.18
4
+ version: 0.3.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-09-08 00:00:00.000000000 Z
11
+ date: 2022-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby