ea 0.6.76 → 0.6.78

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: 8d640b92ddedcf36076a62091fc344a08b85622ede3bee3855541d6705a2ebde
4
- data.tar.gz: ebe4c9068300d79db3aeb0e42494c0dc6175ad638e8e3ca580b39d007fef7170
3
+ metadata.gz: bfe9a94594b0658c534f301154308f235bf478f392175e3dff76db196a478ef8
4
+ data.tar.gz: f77951d18da4cb89f7772ced481a99c9288e6b953cf6ee17ab4318cd23485085
5
5
  SHA512:
6
- metadata.gz: 8b025f70911f4c5648c2dce0cc314d2b4276c849cb653886bc0e1276d8d61362af98ffd529089415cd15359b1a04d1f866bf71adbbd183fc76b1b689bb41c68f
7
- data.tar.gz: c682bb77194678ea2652a0e23a1d595c35b0e31d11a94c93ffebbbbf6a55beb3424e148a4dfd9293bf1509faf59430d1bf438eb743527f4f9550d82e4ef57709
6
+ metadata.gz: a5d2dd6eda5f9a89292235c7d8981a7d7a85664533966c3f284f2679f8722bae5ee62272de28cc2c0d7cd0ca5b243157610b80e26d44a075e9510a89d80b3777
7
+ data.tar.gz: f56cb6b66a358364c8c341bb6b79a422073a2e361f369949fda807b04d2c00082785215ecf1062a3a36b42a5aa75099db75e6eab860f77f5423c99bd925df571
@@ -12,6 +12,7 @@ module Ea
12
12
  # (t_object.Object_Type, xmi:type) to pick the right subclass.
13
13
  class Classifier < Base
14
14
  attribute :qualified_name, :string
15
+ attribute :nested_parent_name, :string # t_object.ParentID owner class
15
16
  attribute :package_id, :string # containing package
16
17
  attribute :package_name, :string # containing package name
17
18
  attribute :is_abstract, :boolean, default: false
@@ -93,6 +93,7 @@ module Ea
93
93
  package_id: package_id_for(object),
94
94
  package_name: package_name_for(object),
95
95
  qualified_name: qualified_name_for(object),
96
+ nested_parent_name: nested_parent_name(object),
96
97
  is_abstract: abstract?(object),
97
98
  is_root: object.isroot.to_i == 1,
98
99
  is_leaf: object.isleaf.to_i == 1,
@@ -492,6 +492,12 @@ module Ea
492
492
  return nil unless diagram.show_foreign
493
493
  return nil unless classifier.is_a?(Ea::Model::Classifier)
494
494
 
495
+ # Nested classifiers (t_object.ParentID -> a Class) qualify
496
+ # with the OWNER CLASS name even when the package matches
497
+ # the diagram's (026D353E: 'set::ComplexTypeClass3').
498
+ nested = classifier.nested_parent_name.to_s
499
+ return nested.empty? ? nil : nested unless nested.empty?
500
+
495
501
  pkg_id = classifier.package_id
496
502
  return nil if pkg_id.nil? || pkg_id == diagram.package_id
497
503
 
data/lib/ea/version.rb CHANGED
@@ -4,5 +4,5 @@ module Ea
4
4
  # Gem release version. Extracted to its own file so the
5
5
  # `gem-release` tool's `gem bump` can find and update it via the
6
6
  # standard `lib/<gem>/version.rb` convention.
7
- VERSION = "0.6.76"
7
+ VERSION = "0.6.78"
8
8
  end
@@ -4,13 +4,26 @@ module Ea
4
4
  module Xmi
5
5
  module LiquidDrops
6
6
  class DataTypeDrop < Liquid::Drop
7
- def initialize(model, options = {}) # rubocop:disable Lint/MissingSuper
7
+ def initialize(model, guidance = nil, options = {}) # rubocop:disable Lint/MissingSuper
8
8
  @model = model
9
+ @guidance = guidance
9
10
  @options = options
10
11
  @lookup = options[:lookup]
11
12
  @xmi_root_model = options[:xmi_root_model]
13
+
14
+ init_guidance(guidance) if guidance
12
15
  end
13
16
 
17
+ private
18
+
19
+ def init_guidance(guidance)
20
+ @data_type_guidance = guidance["data_types"]&.find do |data_type|
21
+ data_type["name"] == name || data_type["name"] == absolute_path
22
+ end
23
+ end
24
+
25
+ public
26
+
14
27
  def xmi_id
15
28
  @model.xmi_id
16
29
  end
@@ -19,6 +32,20 @@ module Ea
19
32
  @model.name
20
33
  end
21
34
 
35
+ def absolute_path
36
+ absolute_path_arr = [@model.name]
37
+ e = @lookup.find_upper_level_packaged_element(@model.xmi_id)
38
+ absolute_path_arr << e.name if e
39
+
40
+ while e
41
+ e = @lookup.find_upper_level_packaged_element(e.id)
42
+ absolute_path_arr << e.name if e
43
+ end
44
+
45
+ absolute_path_arr << "::#{@xmi_root_model.model.name}"
46
+ absolute_path_arr.reverse.join("::")
47
+ end
48
+
22
49
  def attributes
23
50
  Array(@model.attributes).filter_map do |owned_attr|
24
51
  if @options[:with_assoc] || owned_attr.association.nil?
@@ -67,11 +94,15 @@ module Ea
67
94
  def generalization
68
95
  if @model.generalization
69
96
  ::Ea::Xmi::LiquidDrops::GeneralizationDrop.new(
70
- @model.generalization, nil, @options
97
+ @model.generalization, @data_type_guidance, @options
71
98
  )
72
99
  end
73
100
  end
74
101
 
102
+ def has_guidance?
103
+ !!@data_type_guidance
104
+ end
105
+
75
106
  def upper_packaged_element
76
107
  e = @lookup.find_upper_level_packaged_element(@model.xmi_id)
77
108
  e&.name
@@ -57,7 +57,8 @@ module Ea
57
57
 
58
58
  def data_types
59
59
  Array(@model.data_types).map do |data_type|
60
- ::Ea::Xmi::LiquidDrops::DataTypeDrop.new(data_type, @options)
60
+ ::Ea::Xmi::LiquidDrops::DataTypeDrop.new(data_type, @guidance,
61
+ @options)
61
62
  end
62
63
  end
63
64
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ea
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.76
4
+ version: 0.6.78
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-10-11 00:00:00.000000000 Z
11
+ date: 2026-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lutaml-model