lutaml-uml 0.3.2 → 0.4.0

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: b394ba93cd4b9fd8a7136abd42d8302a1f66825ecccafdf5395466b6e3bd4c81
4
- data.tar.gz: b48168115e95037e6edc9de0e12dd4521d715c75ed3264f17ec7b5c42c96297a
3
+ metadata.gz: 57797f5d5a65a5bb7e781509a44460e16877d85c9becb6b6147d43a6180a931c
4
+ data.tar.gz: caa53fbea010657d6dd53db86460ba5dd4a991076ab078bf08a72f553e5c40da
5
5
  SHA512:
6
- metadata.gz: 190d8fb433ea68c26b35d49ec6de1e0d89fcc475bc2fa34f75cc43d587eedf451bdf4ca2c6b0a0661b809d56298c650b19cba1dddb31577e72a71d1b98a7bcc9
7
- data.tar.gz: f5767e05d2d2726ae524053392a5d61fbcec3d0dd163064b3ea7f2607359f61d4730d1697649f0e02aa7e9e8420e84cf2ae4eafdbbc06d6782d621d1b0f40d5f
6
+ metadata.gz: 0ec63f9b0992f1ebab8b2c3116e49514cd5753fe4d1e327a40465c001711e0c0bf86410eba964c6aea1514e8bba91297f19d8a615e9e352d296386ab348bd6fa
7
+ data.tar.gz: 3971b17f96585427e99b3e4000824e99560ed096bea8489dbb62dd7dcba44eca3acd5a5a6ebc55b224aafffae9a963c866f3ca12a365bdc8dd0c54985c93f52e
@@ -1,9 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "lutaml/uml/has_members"
4
3
  require "lutaml/uml/classifier"
4
+
5
+ require "lutaml/uml/has_members"
5
6
  require "lutaml/uml/association"
6
7
  require "lutaml/uml/constraint"
8
+ require "lutaml/uml/data_type"
9
+ require "lutaml/uml/operation"
7
10
  require "lutaml/uml/top_element_attribute"
8
11
 
9
12
  module Lutaml
@@ -13,13 +16,16 @@ module Lutaml
13
16
 
14
17
  attr_accessor :nested_classifier,
15
18
  :is_abstract,
16
- :type
19
+ :type,
20
+ :package
17
21
 
18
22
  attr_reader :associations,
19
23
  :attributes,
20
24
  :members,
21
25
  :modifier,
22
- :constraints
26
+ :constraints,
27
+ :operations,
28
+ :data_types
23
29
 
24
30
  def initialize(attributes = {})
25
31
  @nested_classifier = []
@@ -51,6 +57,18 @@ module Lutaml
51
57
  end
52
58
  end
53
59
 
60
+ def operations=(value)
61
+ @operations = value.to_a.map do |attr|
62
+ Operation.new(attr)
63
+ end
64
+ end
65
+
66
+ def data_types=(value)
67
+ @data_types = value.to_a.map do |attr|
68
+ DataType.new(attr)
69
+ end
70
+ end
71
+
54
72
  def methods
55
73
  # @members&.select { |member| member.class == Method }
56
74
  []
@@ -1,14 +1,75 @@
1
1
  # frozen_string_literal: true
2
+ require "lutaml/uml/classifier"
2
3
 
3
4
  module Lutaml
4
5
  module Uml
5
- class DataType < Class
6
- attr_reader :keyword
6
+ class DataType < Classifier
7
+ include HasMembers
8
+
9
+ attr_accessor :nested_classifier,
10
+ :is_abstract,
11
+ :type
12
+
13
+ attr_reader :associations,
14
+ :attributes,
15
+ :members,
16
+ :modifier,
17
+ :constraints,
18
+ :operations,
19
+ :data_types
7
20
 
8
21
  def initialize(attributes = {})
22
+ @nested_classifier = []
23
+ @stereotype = []
24
+ @generalization = []
25
+ @is_abstract = false
9
26
  super
10
27
  @keyword = "dataType"
11
28
  end
29
+
30
+ def modifier=(value)
31
+ @modifier = value.to_s # TODO: Validate?
32
+ end
33
+
34
+ def attributes=(value)
35
+ @attributes = value.to_a.map do |attr|
36
+ TopElementAttribute.new(attr)
37
+ end
38
+ end
39
+
40
+ def associations=(value)
41
+ @associations = value.to_a.map do |attr|
42
+ Association.new(attr.to_h.merge(owner_end: name))
43
+ end
44
+ end
45
+
46
+ def constraints=(value)
47
+ @constraints = value.to_a.map do |attr|
48
+ Constraint.new(attr)
49
+ end
50
+ end
51
+
52
+ def operations=(value)
53
+ @operations = value.to_a.map do |attr|
54
+ Operation.new(attr)
55
+ end
56
+ end
57
+
58
+ def data_types=(value)
59
+ @data_types = value.to_a.map do |attr|
60
+ DataType.new(attr)
61
+ end
62
+ end
63
+
64
+ def methods
65
+ # @members&.select { |member| member.class == Method }
66
+ []
67
+ end
68
+
69
+ def relationships
70
+ # @members&.select { |member| member.class == ClassRelationship }
71
+ []
72
+ end
12
73
  end
13
74
  end
14
75
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lutaml
4
+ module Uml
5
+ class Diagram < TopElement
6
+ end
7
+ end
8
+ end
@@ -3,6 +3,7 @@
3
3
  require "lutaml/uml/class"
4
4
  require "lutaml/uml/data_type"
5
5
  require "lutaml/uml/enum"
6
+ require "lutaml/uml/diagram"
6
7
  require "lutaml/uml/package"
7
8
  require "lutaml/uml/primitive_type"
8
9
 
@@ -4,6 +4,7 @@ require "lutaml/uml/has_members"
4
4
  require "lutaml/uml/classifier"
5
5
  require "lutaml/uml/association"
6
6
  require "lutaml/uml/top_element_attribute"
7
+ require "lutaml/uml/value"
7
8
 
8
9
  module Lutaml
9
10
  module Uml
@@ -14,19 +15,27 @@ module Lutaml
14
15
  :members,
15
16
  :modifier,
16
17
  :definition,
17
- :keyword
18
+ :keyword,
19
+ :values
18
20
 
19
21
  def initialize(attributes = {})
20
22
  super
21
23
  @keyword = "enumeration"
22
24
  end
23
25
 
26
+ # TODO: delete?
24
27
  def attributes=(value)
25
28
  @attributes = value.to_a.map do |attr|
26
29
  TopElementAttribute.new(attr)
27
30
  end
28
31
  end
29
32
 
33
+ def values=(value)
34
+ @values = value.to_a.map do |attr|
35
+ Value.new(attr)
36
+ end
37
+ end
38
+
30
39
  # TODO: reserved name, change
31
40
  def methods
32
41
  []
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lutaml
4
+ module Uml
5
+ class Operation
6
+ include HasAttributes
7
+ include HasMembers
8
+
9
+ attr_accessor :definition,
10
+ :name,
11
+ :return_type,
12
+ :parameter_type
13
+
14
+ # rubocop:disable Rails/ActiveRecordAliases
15
+ def initialize(attributes = {})
16
+ update_attributes(attributes)
17
+ end
18
+ # rubocop:enable Rails/ActiveRecordAliases
19
+
20
+ def definition=(value)
21
+ @definition = value
22
+ .to_s
23
+ .gsub(/\\}/, '}')
24
+ .gsub(/\\{/, '{')
25
+ .split("\n")
26
+ .map(&:strip)
27
+ .join("\n")
28
+ end
29
+ end
30
+ end
31
+ end
@@ -6,10 +6,11 @@ module Lutaml
6
6
  include HasAttributes
7
7
 
8
8
  attr_accessor :imports, :contents
9
- attr_reader :classes, :enums
9
+ attr_reader :classes, :enums, :data_types, :children_packages
10
10
 
11
11
  def initialize(attributes)
12
12
  update_attributes(attributes)
13
+ @children_packages ||= packages.map { |pkg| [pkg, pkg.packages.map(&:children_packages)] }.flatten
13
14
  end
14
15
 
15
16
  def classes=(value)
@@ -20,10 +21,18 @@ module Lutaml
20
21
  @enums = value.to_a.map { |attributes| Enum.new(attributes) }
21
22
  end
22
23
 
24
+ def data_types=(value)
25
+ @data_types = value.to_a.map { |attributes| DataType.new(attributes) }
26
+ end
27
+
23
28
  def packages=(value)
24
29
  @packages = value.to_a.map { |attributes| Package.new(attributes) }
25
30
  end
26
31
 
32
+ def diagrams=(value)
33
+ @diagrams = value.to_a.map { |attributes| Diagram.new(attributes) }
34
+ end
35
+
27
36
  def classes
28
37
  @classes || []
29
38
  end
@@ -35,6 +44,10 @@ module Lutaml
35
44
  def packages
36
45
  @packages || []
37
46
  end
47
+
48
+ def diagrams
49
+ @diagrams || []
50
+ end
38
51
  end
39
52
  end
40
53
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lutaml
4
+ module Uml
5
+ class Value
6
+ include HasAttributes
7
+ include HasMembers
8
+
9
+ attr_accessor :definition,
10
+ :name,
11
+ :type
12
+
13
+ # rubocop:disable Rails/ActiveRecordAliases
14
+ def initialize(attributes = {})
15
+ update_attributes(attributes)
16
+ end
17
+ # rubocop:enable Rails/ActiveRecordAliases
18
+
19
+ def definition=(value)
20
+ @definition = value
21
+ .to_s
22
+ .gsub(/\\}/, '}')
23
+ .gsub(/\\{/, '{')
24
+ .split("\n")
25
+ .map(&:strip)
26
+ .join("\n")
27
+ end
28
+ end
29
+ end
30
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Lutaml
4
4
  module Uml
5
- VERSION = "0.3.2"
5
+ VERSION = "0.4.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lutaml-uml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-02 00:00:00.000000000 Z
11
+ date: 2021-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashie
@@ -206,6 +206,7 @@ files:
206
206
  - lib/lutaml/uml/constructor_end.rb
207
207
  - lib/lutaml/uml/data_type.rb
208
208
  - lib/lutaml/uml/dependency.rb
209
+ - lib/lutaml/uml/diagram.rb
209
210
  - lib/lutaml/uml/document.rb
210
211
  - lib/lutaml/uml/enum.rb
211
212
  - lib/lutaml/uml/event.rb
@@ -228,6 +229,7 @@ files:
228
229
  - lib/lutaml/uml/node/method_argument.rb
229
230
  - lib/lutaml/uml/node/relationship.rb
230
231
  - lib/lutaml/uml/opaque_behavior.rb
232
+ - lib/lutaml/uml/operation.rb
231
233
  - lib/lutaml/uml/package.rb
232
234
  - lib/lutaml/uml/parsers/attribute.rb
233
235
  - lib/lutaml/uml/parsers/dsl.rb
@@ -251,6 +253,7 @@ files:
251
253
  - lib/lutaml/uml/top_element_attribute.rb
252
254
  - lib/lutaml/uml/transition.rb
253
255
  - lib/lutaml/uml/trigger.rb
256
+ - lib/lutaml/uml/value.rb
254
257
  - lib/lutaml/uml/version.rb
255
258
  - lib/lutaml/uml/vertex.rb
256
259
  - lutaml-uml.gemspec