stepmod-utils 0.3.23 → 0.3.25

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  module Stepmod
2
2
  module Utils
3
- VERSION = "0.3.23".freeze
3
+ VERSION = "0.3.25".freeze
4
4
  end
5
5
  end
@@ -33,9 +33,10 @@ Gem::Specification.new do |spec|
33
33
 
34
34
  spec.add_runtime_dependency "concurrent-ruby"
35
35
  spec.add_runtime_dependency "expressir"
36
- spec.add_runtime_dependency "glossarist", "~> 0.1.0"
36
+ spec.add_runtime_dependency "glossarist", "~> 1.0.5"
37
37
  spec.add_runtime_dependency "indefinite_article"
38
38
  spec.add_runtime_dependency "ptools"
39
+ spec.add_runtime_dependency "pubid-iso"
39
40
  spec.add_runtime_dependency "reverse_adoc", ">= 0.3.5"
40
41
  spec.add_runtime_dependency "thor", ">= 0.20.3"
41
42
  spec.add_development_dependency "rubocop"
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.23
4
+ version: 0.3.25
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-15 00:00:00.000000000 Z
11
+ date: 2023-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.1.0
47
+ version: 1.0.5
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.1.0
54
+ version: 1.0.5
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: indefinite_article
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pubid-iso
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: reverse_adoc
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -157,16 +171,16 @@ email:
157
171
  - open.source@ribose.com
158
172
  executables:
159
173
  - stepmod-annotate-all
160
- - stepmod-build-resource-docs-cache
161
174
  - stepmod-convert-express-description
162
175
  - stepmod-convert-express-resource
163
- - stepmod-extract-terms
164
- - stepmod-find-express-files
176
+ - stepmod-extract-changes
177
+ - stepmod-extract-concepts
165
178
  extensions: []
166
179
  extra_rdoc_files: []
167
180
  files:
168
181
  - ".github/workflows/rake.yml"
169
182
  - ".github/workflows/release.yml"
183
+ - ".github/workflows/test-concept-generation.yml"
170
184
  - ".gitignore"
171
185
  - ".hound.yml"
172
186
  - ".rspec"
@@ -179,13 +193,17 @@ files:
179
193
  - bin/console
180
194
  - bin/setup
181
195
  - exe/stepmod-annotate-all
182
- - exe/stepmod-build-resource-docs-cache
183
196
  - exe/stepmod-convert-express-description
184
197
  - exe/stepmod-convert-express-resource
185
- - exe/stepmod-extract-terms
186
- - exe/stepmod-find-express-files
198
+ - exe/stepmod-extract-changes
199
+ - exe/stepmod-extract-concepts
187
200
  - lib/stepmod/utils.rb
188
201
  - lib/stepmod/utils/bibdata.rb
202
+ - lib/stepmod/utils/change.rb
203
+ - lib/stepmod/utils/change_collection.rb
204
+ - lib/stepmod/utils/change_edition.rb
205
+ - lib/stepmod/utils/change_edition_collection.rb
206
+ - lib/stepmod/utils/changes_extractor.rb
189
207
  - lib/stepmod/utils/cleaner.rb
190
208
  - lib/stepmod/utils/concept.rb
191
209
  - lib/stepmod/utils/converters/a.rb
@@ -199,6 +217,7 @@ files:
199
217
  - lib/stepmod/utils/converters/dd.rb
200
218
  - lib/stepmod/utils/converters/def.rb
201
219
  - lib/stepmod/utils/converters/definition.rb
220
+ - lib/stepmod/utils/converters/description.rb
202
221
  - lib/stepmod/utils/converters/dl.rb
203
222
  - lib/stepmod/utils/converters/drop.rb
204
223
  - lib/stepmod/utils/converters/dt.rb
@@ -241,6 +260,7 @@ files:
241
260
  - lib/stepmod/utils/converters/term.rb
242
261
  - lib/stepmod/utils/converters/text.rb
243
262
  - lib/stepmod/utils/converters/uof.rb
263
+ - lib/stepmod/utils/express_bibdata.rb
244
264
  - lib/stepmod/utils/html_to_asciimath.rb
245
265
  - lib/stepmod/utils/smrl_description_converter.rb
246
266
  - lib/stepmod/utils/smrl_resource_converter.rb
@@ -270,7 +290,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
270
290
  - !ruby/object:Gem::Version
271
291
  version: '0'
272
292
  requirements: []
273
- rubygems_version: 3.1.6
293
+ rubygems_version: 3.3.26
274
294
  signing_key:
275
295
  specification_version: 4
276
296
  summary: Stepmod-utils is a toolkit that works on STEPmod data.
@@ -1,20 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "nokogiri"
4
- require "json"
5
-
6
- stepmod_dir = ARGV.first || Dir.pwd
7
-
8
- schemas = {}
9
- Dir.glob(File.join(stepmod_dir,
10
- "data/resource_docs/*/resource.xml")).each do |resource_docs_file|
11
- match = resource_docs_file.match("data/resource_docs/([^/]+)/resource.xml")
12
- resource_docs_dir = match.captures[0]
13
-
14
- resource_docs = Nokogiri::XML(File.read(resource_docs_file)).root
15
- resource_docs.xpath("schema").each do |schema|
16
- schemas[schema["name"]] = resource_docs_dir
17
- end
18
- end
19
-
20
- puts JSON.pretty_generate(schemas)
@@ -1,237 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: UTF-8
3
-
4
- require "pry"
5
- # resolve bin path, ignoring symlinks
6
- require "pathname"
7
- bin_file = Pathname.new(__FILE__).realpath
8
-
9
- # add self to libpath
10
- $:.unshift File.expand_path("../../lib", bin_file)
11
-
12
- # Fixes https://github.com/rubygems/rubygems/issues/1420
13
- require "rubygems/specification"
14
-
15
- module Gem
16
- class Specification
17
- def this; self; end
18
- end
19
- end
20
-
21
- require "bundler/setup"
22
- require "stepmod/utils/terms_extractor"
23
- require 'optparse'
24
-
25
- def log(message)
26
- puts "[stepmod-utils] #{message}"
27
- end
28
-
29
- options = {}
30
- OptionParser.new do |opts|
31
- opts.banner = "Usage: #{$0} [options]"
32
-
33
- opts.on("-p", "--path STEPMOD_DATA_PATH", String, "Path to STEPmod data directory") do |path|
34
- options[:stepmod_dir] = path
35
- end
36
-
37
- opts.on("-i", "--index INDEX_PATH", String, "Path to repository_index.xml") do |path|
38
- unless path.nil?
39
- options[:index_path] = Pathname.new(path).to_s
40
- end
41
- end
42
-
43
- opts.on_tail("-h", "--help", "Show this message") do
44
- puts opts
45
- exit
46
- end
47
- end.parse!
48
-
49
- stepmod_dir = options[:stepmod_dir]
50
- if stepmod_dir.nil?
51
- raise StandardError.new("STEPmod data path not set, set with the `-p` option.")
52
- else
53
- log "STEPmod data path: `#{stepmod_dir}`"
54
- end
55
-
56
- index_path = options[:index_path] || File.join(stepmod_dir, "repository_index.xml")
57
- unless File.exists?(index_path)
58
- raise StandardError.new("Index file not present at #{index_path}, set with the `-i` option.")
59
- else
60
- log "Repository index path: `#{index_path}`"
61
- end
62
-
63
- general_concepts,
64
- resource_concepts,
65
- parsed_bibliography,
66
- part_concepts,
67
- part_resources,
68
- part_modules = Stepmod::Utils::TermsExtractor.call(stepmod_dir, index_path)
69
-
70
- def part_to_title(bibdata)
71
- case bibdata.part.to_i
72
- when 41
73
- "Fundamentals of product description and support"
74
- when 42
75
- "Geometric and topological representation"
76
- when 43
77
- "Foundation representation"
78
- when 44
79
- "Product structure, concept and configuration"
80
- when 45
81
- "Material and other engineering properties"
82
- when 46
83
- "Visual presentation"
84
- when 47
85
- "Shape tolerance"
86
- when 51
87
- "Mathematical representation"
88
- else
89
- bibdata.title_en
90
- end
91
- end
92
-
93
- IMAGE_REPLACEMENTS = {
94
- 'image::eq01.gif[]' => 'stem:[H(A,B) = max {h(A, B), h(B,A)}]',
95
- 'image::eq02.gif[]' => 'stem:[max_{a in A} { min_{b in B} d(a,b) }]',
96
- 'image::vector_z_c.gif[]' => 'stem:[bar z_{c}]',
97
- 'image::one_direction_repeat_factor_expression.gif[]' => 'stem:[I + k cdot R; k = -1, 1]',
98
- 'image::two_direction_repeat_factor_expression.gif[]' => 'stem:[I + k_1 cdot R_1 + k_2 cdot R_2; k_1, k_2 = -1, 0, 1, k^2_1 + k^2_2 != 0]',
99
- }
100
-
101
- TEXT_REPLACEMENTS = {
102
- ' (see <module_ref linkend="ply_orientation_specification:4_entities:figure:f2"> Figure 2</module_ref>)' => '',
103
- ' (see <module_ref linkend="ply_orientation_specification:4_entities:figure:f3"> Figure 3</module_ref>)' => ''
104
- }
105
-
106
- def replace_content(content)
107
- IMAGE_REPLACEMENTS.each_pair do |k, v|
108
- content.gsub!(k, v)
109
- end
110
- TEXT_REPLACEMENTS.each_pair do |k, v|
111
- content.gsub!(k, v)
112
- end
113
-
114
- content
115
- end
116
-
117
- ## Skip all Clause 3 terms
118
- # part_concepts.each do |(bibdata, current_part_concepts)|
119
- # current_part_concepts = current_part_concepts.to_a.map do |n|
120
- # n.localizations["en"]
121
- # end
122
- # fn = "03x-stepmod-#{bibdata.part}.adoc"
123
- # File.open(fn, "w") do |file|
124
- # file.puts("== #{part_to_title(bibdata)}\n\n")
125
- # file.puts(replace_images(current_part_concepts.map(&:to_mn_adoc).join("\n")))
126
- # end
127
- # log "INFO: written to: #{fn}"
128
- # end
129
-
130
- # File.open("03x-stepmod.adoc", "w") do |file|
131
- # part_concepts.sort_by do |(bibdata, current_part_concepts)|
132
- # bibdata.part.to_i
133
- # end.each do |(bibdata, current_part_concepts)|
134
- # fn = "03x-stepmod-#{bibdata.part}.adoc"
135
- # file.puts("\ninclude::#{fn}[]\n")
136
- # end
137
- # end
138
-
139
- # log "INFO: written summary file to: 03x-stepmod.adoc"
140
-
141
- part_resources.each do |(bibdata, current_part_resources)|
142
- current_part_resources = current_part_resources.to_a.map do |n|
143
- n.localizations["en"]
144
- end
145
- fn = "04x-stepmod-entities-resources-#{bibdata.part}.adoc"
146
- File.open(fn, "w") do |file|
147
- # file.puts("== #{part_to_title(bibdata)}\n\n")
148
- file.puts(replace_content(current_part_resources.map(&:to_mn_adoc).join("\n")))
149
- end
150
- log "INFO: written to: #{fn}"
151
- end
152
-
153
- File.open("04x-stepmod-entities-resources.adoc", "w") do |file|
154
- part_resources.sort_by do |(bibdata, current_part_resources)|
155
- bibdata.part.to_i
156
- end.each do |(bibdata, current_part_resources)|
157
- fn = "04x-stepmod-entities-resources-#{bibdata.part}.adoc"
158
- file.puts("\ninclude::#{fn}[]\n")
159
- end
160
- end
161
-
162
- log "INFO: written summary file to: 04x-stepmod-entities-resources.adoc"
163
-
164
- part_modules.sort_by do |(bibdata, part_modules_arm, part_modules_mim)|
165
- bibdata.part.to_i
166
- end.each do |(bibdata, part_modules_arm, part_modules_mim)|
167
- fn = "05x-stepmod-entities-modules-#{bibdata.part}.adoc"
168
- File.open(fn, "w") do |file|
169
- file.puts("")
170
-
171
- unless part_modules_arm.empty?
172
- schema_name = part_modules_arm.first.first
173
- concepts = part_modules_arm.first.last.to_a.map do |n|
174
- n.localizations["en"]
175
- end
176
-
177
- # puts "SCHEMA NAME ARM: #{schema_name}"
178
- file.puts("== #{schema_name}\n\n")
179
- file.puts(concepts.map(&:to_mn_adoc).join("\n"))
180
- end
181
-
182
- file.puts("")
183
-
184
- unless part_modules_mim.empty?
185
- schema_name = part_modules_mim.first.first
186
-
187
- # puts "SCHEMA NAME MIM: #{schema_name}"
188
- concepts = part_modules_mim.first.last.to_a.map do |n|
189
- n.localizations["en"]
190
- end
191
- file.puts("== #{schema_name}\n\n")
192
- file.puts(replace_content(concepts.map(&:to_mn_adoc).join("\n")))
193
- end
194
- end
195
-
196
- log "INFO: written to: #{fn}"
197
- end
198
-
199
- File.open("05x-stepmod-entities-modules.adoc", "w") do |file|
200
- part_modules.sort_by do |(bibdata, part_modules_arm, part_modules_mim)|
201
- bibdata.part.to_i
202
- end.each do |(bibdata, part_modules_arm, part_modules_mim)|
203
- fn = "05x-stepmod-entities-modules-#{bibdata.part}.adoc"
204
- file.puts("\ninclude::#{fn}[]\n")
205
- end
206
- end
207
-
208
- log "INFO: written summary file to: 05x-stepmod-entities-modules.adoc"
209
-
210
- ## Skipping all Clause 3 terms
211
- # File.open("031-stepmod-general.adoc", "w") do |file|
212
- # file.puts(
213
- # replace_images(
214
- # general_concepts.to_a.map do |n|
215
- # n.localizations["en"]
216
- # end.map(&:to_mn_adoc).join("\n")
217
- # )
218
- # )
219
- # end
220
-
221
- # log "INFO: written to: 031-stepmod-general.adoc"
222
-
223
- File.open("041-stepmod-entities-resources.adoc", "w") do |file|
224
- file.puts(
225
- replace_content(
226
- resource_concepts.to_a.map do |n|
227
- n.localizations["en"]
228
- end.map(&:to_mn_adoc).join("\n")
229
- )
230
- )
231
- end
232
- log "INFO: written to: 041-stepmod-entities-resources.adoc"
233
-
234
- File.open("991-generated-bibliography.adoc", "w") do |file|
235
- file.puts(parsed_bibliography.map(&:to_mn_adoc).sort.uniq.join("\n"))
236
- end
237
- log "INFO: written to: 991-generated-bibliography.adoc"
@@ -1,24 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "nokogiri"
4
-
5
- stepmod_dir = ARGV.first || Dir.pwd
6
-
7
- index = Nokogiri::XML(File.read(File.join(stepmod_dir,
8
- "repository_index.xml"))).root
9
-
10
- files = []
11
- index.xpath("modules/module").each do |item|
12
- files << "#{stepmod_dir}/data/modules/#{item['name']}/arm.exp"
13
- files << "#{stepmod_dir}/data/modules/#{item['name']}/mim.exp"
14
- end
15
- index.xpath("resources/resource").each do |item|
16
- files << "#{stepmod_dir}/data/resources/#{item['name']}/#{item['name']}.exp"
17
- end
18
- index.xpath("business_object_models/business_object_model").each do |item|
19
- files << "#{stepmod_dir}/data/business_object_models/#{item['name']}/bom.exp"
20
- files << "#{stepmod_dir}/data/business_object_models/#{item['name']}/DomainModel.exp"
21
- end
22
-
23
- existing_files = files.filter { |file| File.exists?(file) }
24
- puts existing_files