stepmod-utils 0.3.20 → 0.3.21

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: 2a0c01510a286c5aa7e3b0a32a910b7b3637726e01cb7433f8552ef6758f3fa5
4
- data.tar.gz: 0a3fd286cb1f42a4d5cb52989616cb36cc39cffd49c0cd6a7219685b9b83dfba
3
+ metadata.gz: 0d50ed47ffc263b007aa9f2bda3bf5535d9cf84dbc56f1fc87c63d4255ed3f02
4
+ data.tar.gz: 3572d73a116953f337ac8add7bb47133f33ab3244daa6f3ee58e9901f26cb5f1
5
5
  SHA512:
6
- metadata.gz: 4cca0b6de2ee2109e0f11f144406a14f58a54cbd2030ae15180d897a923bf8c98de36b9f8c1d59445a2cde22a1cc2c9ac70474f6b1262fb6a7faa4bec460a631
7
- data.tar.gz: c4c78c48c121619e7e47fda0a86caeaec622535cd5c57468e1316998fa4ab7a2c73549fe227c0a7df2bde4ea69f32852b52018304cfabe6c129241f8a2b54484
6
+ metadata.gz: 5263394029779a53cca0c8f41171eb5bbc8e2490de14041c4e6ae56f8880a0f4eff49c1235d43d69f0d34501e5ae372a4c77bbfeb459147765fd87f81014d7dd
7
+ data.tar.gz: 6aab6c46a9023e194fe278cedd353807d070eba8c61949777af13ff63a26d3f652a304575cfc56873b54fd57187347a1321df40d7527905320689664da89991c
@@ -154,7 +154,7 @@ module Stepmod
154
154
 
155
155
  # read definitions
156
156
  current_part_concepts = Glossarist::Collection.new
157
- current_document.xpath("//definition").each_with_index do |definition, definition_index|
157
+ current_document.xpath("//definition").each.with_index(1) do |definition, definition_index|
158
158
  term_id = definition["id"]
159
159
  unless term_id.nil?
160
160
  if encountered_terms[term_id]
@@ -444,7 +444,9 @@ module Stepmod
444
444
  combined.gsub!(/\n\/\/.*?\n/, "\n")
445
445
  combined.strip!
446
446
 
447
- combined
447
+ express_reference_to_mention(combined)
448
+
449
+ # combined
448
450
  # # TODO: If the definition contains a list immediately after the first paragraph, don't split
449
451
  # return definition if definition =~ /\n\* /
450
452
 
@@ -461,6 +463,15 @@ module Stepmod
461
463
  # end
462
464
  end
463
465
 
466
+ # Replace `<<express:{schema}.{entity},{render}>>` with {{entity,render}}
467
+ def express_reference_to_mention(description)
468
+ # TODO: Use Expressir to check whether the "entity" is really an
469
+ # EXPRESS ENTITY. If not, skip the mention.
470
+ description.gsub(/<<express:([^,]+),([^>]+)>>/) do |match|
471
+ "{{#{Regexp.last_match[1].split('.').last},#{Regexp.last_match[2]}}}"
472
+ end
473
+ end
474
+
464
475
  def entity_name_to_text(entity_id)
465
476
  entity_id.downcase.gsub(/_/, " ")
466
477
  end
@@ -471,33 +482,37 @@ module Stepmod
471
482
 
472
483
  # See: metanorma/iso-10303-2#90
473
484
  # TODO: This is not DRY in case we have to further customize
474
- entity_text = if domain_type = domain.match(/\A(application.*?):/)
485
+ entity_text = if domain_type = domain.match(/\A(application object):/)
486
+
487
+ entity_ref = if entity.id == entity_name_to_text(entity.id)
488
+ "{{#{entity.id}}}"
489
+ else
490
+ "{{#{entity.id},#{entity_name_to_text(entity.id)}}}"
491
+ end
475
492
 
476
493
  if entity.subtype_of.size.zero?
477
- "#{domain_type[1]} that represents the " +
478
- "{{#{entity.id},#{entity_name_to_text(entity.id)}}} entity"
494
+ "#{domain_type[1]} that represents the " + entity_ref + " entity"
479
495
  else
480
496
  entity_subtypes = entity.subtype_of.map do |e|
481
497
  "{{#{e.id},#{entity_name_to_text(e.id)}}}"
482
498
  end
483
499
  "#{domain_type[1]} that is a type of " +
484
500
  "#{entity_subtypes.join(' and ')} that represents the " +
485
- "{{#{entity.id},#{entity_name_to_text(entity.id)}}} entity"
501
+ entity_ref + " entity"
486
502
  end
487
503
 
488
504
  else
489
505
 
490
- # Not "application object" or "application module"
506
+ # Not "application object"
491
507
  if entity.subtype_of.size.zero?
492
- "entity data type that represents " +
493
- entity.id.indefinite_article + " {{#{entity.id}}} entity"
508
+ "entity data type that represents the {{#{entity.id}}} entity"
494
509
  else
495
510
  entity_subtypes = entity.subtype_of.map do |e|
496
511
  "{{#{e.id}}}"
497
512
  end
498
- "entity data type that is a type of "+
499
- "#{entity_subtypes.join(' and ')} that represents " +
500
- entity.id.indefinite_article + " {{#{entity.id}}} entity"
513
+ "entity data type that is a type of " +
514
+ "#{entity_subtypes.join(' and ')} that represents the " +
515
+ "{{#{entity.id}}} entity"
501
516
  end
502
517
  end
503
518
 
@@ -1,5 +1,5 @@
1
1
  module Stepmod
2
2
  module Utils
3
- VERSION = "0.3.20".freeze
3
+ VERSION = "0.3.21".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.20
4
+ version: 0.3.21
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-11 00:00:00.000000000 Z
11
+ date: 2022-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby