stepmod-utils 0.4.13 → 0.4.14

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: 58a97c3c7381351ce5d0ff391e65f6b5d62ce52f541d51975b53c6e4793b5ae0
4
- data.tar.gz: dd7d17312e634aaab93688e8f3fdee84e1895c025d74dd0a505fd357ea336756
3
+ metadata.gz: e899495da23543691f64da8ac653723b58d18d6c56dc3079d03de2ff4c82b76d
4
+ data.tar.gz: c7c95af88056dc3afccdd7e2a627539027fafe58b984e55f89f4d4e84d5d5466
5
5
  SHA512:
6
- metadata.gz: 896b518262254a61c6e0e6a5df7fe5fd992eef5f9a1fb1f9136ee0753a6dc649c9c1ba07fe192c939cfa51b545a4749ffa2610aa9dc4c609b2f7e9385f917437
7
- data.tar.gz: 54f31dabc624b11cfe48dde83bd0108c07692c4d3d55ee49a7f70ab518cae6914a9013e99f232d1b0c95e2798627904b3f895dad0ff8b47a48d0cd28ed117f21
6
+ metadata.gz: 599a6815246bc9a9242be9bafd86e9adb0ad16d29f93295b2772eeceffe5773a6560a23a563890f7ef8d1a1a3e23e849b9f2f3d6abfc3f7a3de55d554c17491e
7
+ data.tar.gz: af84267ff33afbb543de2b491b7c4bbc1ecd7c837235a75a5cee8e4136d4b8fffb89b5778a6b9448a5f787fffbe31775a6e5c800c057375189dfb031f9957e4d
@@ -4,6 +4,7 @@
4
4
 
5
5
  require "pathname"
6
6
  require "fileutils"
7
+ require "nokogiri"
7
8
  bin_file = Pathname.new(__FILE__).realpath
8
9
 
9
10
  # add self to libpath
@@ -17,11 +18,11 @@ def log(message, indent = 0)
17
18
  puts "[stepmod-utils] #{message}"
18
19
  end
19
20
 
20
- def copy_files_to_schemas(path, stepmod_path, srl_output_docs_dir)
21
+ def copy_files_to_schemas(path, stepmod_path, srl_output_schemas_dir)
21
22
  base_path = path.dirname.relative_path_from(File.join(stepmod_path, "data"))
22
23
  file_name = path.basename
23
24
 
24
- new_dir = File.join(srl_output_docs_dir, base_path.to_s)
25
+ new_dir = File.join(srl_output_schemas_dir, base_path.to_s)
25
26
  new_file_path = File.join(new_dir, file_name)
26
27
 
27
28
  unless Dir.exist?(new_dir)
@@ -32,6 +33,29 @@ def copy_files_to_schemas(path, stepmod_path, srl_output_docs_dir)
32
33
  log("Copied #{path.basename} to #{new_file_path}", 1)
33
34
  end
34
35
 
36
+ def copy_files_to_document(path, stepmod_path, srl_output_docs_dir)
37
+ base_path = path.dirname.relative_path_from(File.join(stepmod_path, "data"))
38
+ file_name = path.basename
39
+ module_xml_path = path.dirname.join('module.xml')
40
+ # puts "module_xml_path #{module_xml_path}"
41
+ module_xml = Nokogiri::XML(IO.read(module_xml_path)).root
42
+
43
+ part_number = module_xml.xpath('//module').first.attr('part')
44
+ # module_name = module_xml.xpath('//module').first.attr('name')
45
+
46
+ new_dir = File.join(srl_output_docs_dir, "iso-10303-#{part_number}")
47
+ new_file_path = File.join(new_dir, file_name)
48
+ # new_file_path = File.join(new_dir, "#{module_name}.#{file_name}")
49
+
50
+ ## The document directory should already exist.
51
+ # unless Dir.exist?(new_dir)
52
+ # FileUtils.mkdir_p(new_dir)
53
+ # end
54
+
55
+ FileUtils.copy_file(path, new_file_path)
56
+ log("Copied #{path.basename} to #{new_file_path}", 1)
57
+ end
58
+
35
59
  options = {}
36
60
  OptionParser.new do |opts|
37
61
  opts.banner = "Usage: #{$0} [options]"
@@ -171,10 +195,19 @@ log("[SRL MIGRATION: stepmod-utils] COMPLETE Annotated EXPRESS generation.")
171
195
  log("*"*30)
172
196
  log("[SRL MIGRATION: stepmod-utils] START EXPRESS change YAML extraction.")
173
197
  system "stepmod-extract-changes -p #{stepmod_dir}"
198
+
199
+ # Move arm/mim/arm_lf/mim_lf/mapping changes into schema directories
174
200
  Dir.glob("#{stepmod_dir}/data/**/*.changes.yaml").each do |filepath|
175
201
  path = Pathname.new(filepath)
176
202
  copy_files_to_schemas(path, stepmod_dir, srl_output_schemas_dir)
177
203
  end
204
+
205
+ # Move document changes into document directories
206
+ Dir.glob("#{stepmod_dir}/data/**/changes.yaml").each do |filepath|
207
+ path = Pathname.new(filepath)
208
+ copy_files_to_document(path, stepmod_dir, srl_output_docs_dir)
209
+ end
210
+
178
211
  log("*"*30)
179
212
  log("[SRL MIGRATION: stepmod-utils] COMPLETE EXPRESS change YAML extraction.")
180
213
 
@@ -13,6 +13,8 @@ module Stepmod
13
13
  mim: "mim",
14
14
  arm_longform: "arm_lf",
15
15
  mim_longform: "mim_lf",
16
+ mapping: "mapping",
17
+ changes: "",
16
18
  }.freeze
17
19
 
18
20
  def initialize(stepmod_dir:, schema_name:, type:)
@@ -40,13 +42,20 @@ module Stepmod
40
42
  alias_method :[], :fetch_change_edition
41
43
 
42
44
  def save_to_file
43
- File.write(filepath(@type), Psych.dump(to_h))
45
+ change_hash = to_h
46
+ return if change_hash.empty?
47
+
48
+ File.write(filepath(@type), Psych.dump(change_hash))
44
49
  end
45
50
 
46
51
  def to_h
52
+ change_editions_list = change_editions.to_h
53
+
54
+ return {} if change_editions_list.empty?
55
+
47
56
  {
48
57
  "schema" => schema_name,
49
- "change_edition" => change_editions.to_h,
58
+ "change_edition" => change_editions_list,
50
59
  }
51
60
  end
52
61
 
@@ -58,10 +67,16 @@ module Stepmod
58
67
  "data",
59
68
  base_folder,
60
69
  schema_name,
61
- "#{MODULE_TYPES[type.to_sym] || schema_name}.changes.yaml",
70
+ filename(type),
62
71
  )
63
72
  end
64
73
 
74
+ def filename(type)
75
+ return "changes.yaml" if type.to_s == "changes"
76
+
77
+ "#{MODULE_TYPES[type.to_sym] || schema_name}.changes.yaml"
78
+ end
79
+
65
80
  def base_folder
66
81
  if resource?
67
82
  "resources"
@@ -2,7 +2,7 @@ module Stepmod
2
2
  module Utils
3
3
  class ChangeEdition
4
4
  attr_accessor :version, :description
5
- attr_reader :additions, :modifications, :deletions, :mapping
5
+ attr_reader :additions, :modifications, :deletions, :changes
6
6
 
7
7
  def initialize(options)
8
8
  @version = options[:version]
@@ -10,7 +10,7 @@ module Stepmod
10
10
  self.additions = options[:additions] || []
11
11
  self.modifications = options[:modifications] || []
12
12
  self.deletions = options[:deletions] || []
13
- self.mapping = options[:mapping] || []
13
+ self.changes = options[:changes] || []
14
14
  end
15
15
 
16
16
  def additions=(additions)
@@ -31,10 +31,10 @@ module Stepmod
31
31
  @deletions = deletions
32
32
  end
33
33
 
34
- def mapping=(mapping)
35
- validate_type("mapping", mapping, Array)
34
+ def changes=(changes)
35
+ validate_type("changes", changes, Array)
36
36
 
37
- @mapping = mapping
37
+ @changes = changes
38
38
  end
39
39
 
40
40
  def to_h
@@ -44,7 +44,7 @@ module Stepmod
44
44
  "additions" => additions,
45
45
  "modifications" => modifications,
46
46
  "deletions" => deletions,
47
- "mapping" => mapping,
47
+ "changes" => changes,
48
48
  }.reject { |_k, v| v.nil? || v.empty? }
49
49
  end
50
50
 
@@ -64,9 +64,12 @@ module Stepmod
64
64
  options = {
65
65
  schema_name: schema_name,
66
66
  version: change_node.attr("version"),
67
- description: converted_description(change_node.xpath("description").first),
67
+ # description: converted_description(change_node.xpath("description").first),
68
68
  }
69
69
 
70
+ add_mapping_changes(collection, change_node, options)
71
+ add_changes(collection, change_node, options)
72
+
70
73
  MODULE_TYPES.each do |type|
71
74
  add_module_changes(
72
75
  collection,
@@ -97,21 +100,34 @@ module Stepmod
97
100
  schema_name = options[:schema_name]
98
101
  change = collection.fetch_or_initialize(schema_name, type)
99
102
 
103
+ return if changes.nil?
104
+
100
105
  change_edition = extract_change_edition(changes, options)
101
106
  change.add_change_edition(change_edition)
102
-
103
- if type == "arm"
104
- add_mapping_changes(collection, change_node, options)
105
- end
106
107
  end
107
108
 
108
109
  def add_mapping_changes(collection, change_node, options)
110
+ mapping_changes = extract_mapping_changes(change_node)
111
+ return if mapping_changes.empty?
112
+
113
+ change_edition = collection
114
+ .fetch_or_initialize(options[:schema_name], "mapping")
115
+ .change_editions
116
+ .fetch_or_initialize(options[:version])
117
+
118
+ change_edition.changes = mapping_changes
119
+ end
120
+
121
+ def add_changes(collection, change_node, options)
122
+ description = converted_description(change_node.xpath("description").first)
123
+ return if description.nil? || description.empty?
124
+
109
125
  change_edition = collection
110
- .fetch_or_initialize(options[:schema_name], "arm")
126
+ .fetch_or_initialize(options[:schema_name], "changes")
111
127
  .change_editions
112
128
  .fetch_or_initialize(options[:version])
113
129
 
114
- change_edition.mapping = extract_mapping_changes(change_node)
130
+ change_edition.description = description
115
131
  end
116
132
 
117
133
  def extract_mapping_changes(change_node)
@@ -1,5 +1,5 @@
1
1
  module Stepmod
2
2
  module Utils
3
- VERSION = "0.4.13".freeze
3
+ VERSION = "0.4.14".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.4.13
4
+ version: 0.4.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-10 00:00:00.000000000 Z
11
+ date: 2024-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby