lutaml-uml 0.3.0 → 0.4.1

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: 3436e32ef66aba3d38cf8418de2ecef7bd475a1379e62e787aaddb0701397b55
4
- data.tar.gz: da160c6b5ffaa013cb0d4bc4df8a23175acdff14da402c15b883c96a424cbd83
3
+ metadata.gz: dc9fee04e0d3f8bf1a741dcce56ebfac843c1207d5f9f4dc8b9f42869db728f6
4
+ data.tar.gz: 58b0ed6fb1e66d0a34aed9fefcf6d4625f52234bf100c93ad06f62297ec3e2cb
5
5
  SHA512:
6
- metadata.gz: f76a00663fa9a4a8167930d4114ef4995ce7b488034336dd1134953ca9ed09ab4fd2da6e32a425082b6cf212b97bf47493e0b3f45c4b181fa93966f581ad7265
7
- data.tar.gz: 85f1fd71d5df7d0e673a5c4994f7d524dbaa915afca26bdacd483e384889003114e3f91ac1d7c0a28bc9a649b675036458c4fcc685b9e8534b6a49c346bb269d
6
+ metadata.gz: df205676bcafcb09265a81491fbca4b78b2a1dfc59d18f080e20e4ddf633a3aed9601d09cd78b32fbd297c283027681b94276e5ceb68e1613dc8cb8dcd036243
7
+ data.tar.gz: 9191a9ba6db3db78aa785a685e4c75c4cd69f84441cb3420dde4fbc02dec885ddcaf18c12f263aa5852439721609bb3e11930b7cbfcaf8c20b461b517a1bc84c
data/README.adoc CHANGED
@@ -1,5 +1,11 @@
1
1
  # Lutaml::Uml
2
2
 
3
+ image:https://badge.fury.io/rb/lutaml-uml.svg["Gem Version", link="https://badge.fury.io/rb/lutaml-uml"]
4
+
5
+ image:https://github.com/lutaml/lutaml-uml/actions/workflows/macos.yml/badge.svg["macos", link="https://github.com/lutaml/lutaml-uml/actions/workflows/macos.yml"]
6
+ image:https://github.com/lutaml/lutaml-uml/actions/workflows/ubuntu.yml/badge.svg["ubuntu", link="https://github.com/lutaml/lutaml-uml/actions/workflows/ubuntu.yml"]
7
+ image:https://github.com/lutaml/lutaml-uml/actions/workflows/windows.yml/badge.svg["windows", link="https://github.com/lutaml/lutaml-uml/actions/workflows/windows.yml"]
8
+
3
9
  Lutaml is a language for specifying UML class diagrams and a tool for converting it into various different formats.
4
10
 
5
11
  ## Install
@@ -35,4 +41,4 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERN
35
41
 
36
42
  ## Code of Conduct
37
43
 
38
- Everyone interacting in the Lutaml::Uml project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/lutaml-uml/blob/master/CODE_OF_CONDUCT.md).
44
+ Everyone interacting in the Lutaml::Uml project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/lutaml-uml/blob/master/CODE_OF_CONDUCT.md).
data/exe/lutaml-wsd2uml CHANGED
@@ -27,7 +27,7 @@ ASSOCIATION_MAPPINGS = {
27
27
  in_comment_block = false
28
28
 
29
29
  def transform_line(line)
30
- line = line.gsub(/^\s*'/, '** ').gsub(/\|[\sa-zA-Z]+$/, '')
30
+ line = line.gsub(/^\s*'/, '** ').gsub(/\|[\sa-zA-Z]+$/, '').gsub(/\r/, '')
31
31
  return sync_puts(line, 2) if ASSOCIATION_MAPPINGS.keys.none? { |key| line =~ key }
32
32
 
33
33
  owner_type, member_type = ASSOCIATION_MAPPINGS.detect { |(key, _value)| line =~ key }.last.split(",")
@@ -1,8 +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"
7
+ require "lutaml/uml/constraint"
8
+ require "lutaml/uml/data_type"
9
+ require "lutaml/uml/operation"
6
10
  require "lutaml/uml/top_element_attribute"
7
11
 
8
12
  module Lutaml
@@ -12,12 +16,16 @@ module Lutaml
12
16
 
13
17
  attr_accessor :nested_classifier,
14
18
  :is_abstract,
15
- :type
19
+ :type,
20
+ :package
16
21
 
17
22
  attr_reader :associations,
18
23
  :attributes,
19
24
  :members,
20
- :modifier
25
+ :modifier,
26
+ :constraints,
27
+ :operations,
28
+ :data_types
21
29
 
22
30
  def initialize(attributes = {})
23
31
  @nested_classifier = []
@@ -43,6 +51,24 @@ module Lutaml
43
51
  end
44
52
  end
45
53
 
54
+ def constraints=(value)
55
+ @constraints = value.to_a.map do |attr|
56
+ Constraint.new(attr)
57
+ end
58
+ end
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
+
46
72
  def methods
47
73
  # @members&.select { |member| member.class == Method }
48
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, pkg.packages.map(&:children_packages)] }.flatten.uniq
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
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "parslet"
4
+ require "parslet/convenience"
4
5
  require "lutaml/uml/parsers/dsl_preprocessor"
5
6
  require "lutaml/uml/parsers/dsl_transform"
6
7
  require "lutaml/uml/node/document"
@@ -8,6 +9,7 @@ require "lutaml/uml/node/document"
8
9
  module Lutaml
9
10
  module Uml
10
11
  module Parsers
12
+ class ParsingError < StandardError; end
11
13
  # Class for parsing LutaML dsl into Lutaml::Uml::Document
12
14
  class Dsl < Parslet::Parser
13
15
  # @param [String] io - LutaML string representation
@@ -20,7 +22,15 @@ module Lutaml
20
22
 
21
23
  def parse(input_file, _options = {})
22
24
  data = Lutaml::Uml::Parsers::DslPreprocessor.call(input_file)
23
- ::Lutaml::Uml::Document.new(DslTransform.new.apply(super(data)))
25
+ # https://kschiess.github.io/parslet/tricks.html#Reporter engines
26
+ # Parslet::ErrorReporter::Deepest allows more
27
+ # detailed display of error
28
+ reporter = Parslet::ErrorReporter::Deepest.new
29
+ ::Lutaml::Uml::Document
30
+ .new(DslTransform.new.apply(super(data, reporter: reporter)))
31
+ rescue Parslet::ParseFailed => e
32
+ raise(ParsingError,
33
+ "#{e.message}\ncause: #{e.parse_failure_cause.ascii_tree}")
24
34
  end
25
35
 
26
36
  KEYWORDS = %w[
@@ -292,9 +302,7 @@ module Lutaml
292
302
  str("definition") >>
293
303
  whitespace? >>
294
304
  str("{") >>
295
- whitespace? >>
296
- (match("[\n\s]}").absent? >> any).repeat.as(:definition) >>
297
- whitespace? >>
305
+ ((str("\\") >> any) | (str("}").absent? >> any)).repeat.maybe.as(:definition) >>
298
306
  str('}')
299
307
  end
300
308
 
@@ -387,12 +395,11 @@ module Lutaml
387
395
  diagram_inner_definition.repeat.as(:members) >>
388
396
  str("}")
389
397
  end
390
- rule(:diagram_body?) { diagram_body.maybe }
391
398
  rule(:diagram_definition) do
392
399
  diagram_keyword >>
393
400
  spaces? >>
394
401
  class_name.as(:name) >>
395
- diagram_body? >>
402
+ diagram_body >>
396
403
  whitespace?
397
404
  end
398
405
  rule(:diagram_definitions) { diagram_definition >> whitespace? }
@@ -5,16 +5,28 @@ module Lutaml
5
5
  module Parsers
6
6
  # Class for preprocessing dsl ascii file special directives:
7
7
  # - include
8
- module DslPreprocessor
9
- module_function
8
+ class DslPreprocessor
9
+ attr_reader :input_file
10
10
 
11
- def call(input_file)
11
+ def initialize(input_file)
12
+ @input_file = input_file
13
+ end
14
+
15
+ class << self
16
+ def call(input_file)
17
+ new(input_file).call
18
+ end
19
+ end
20
+
21
+ def call
12
22
  include_root = File.dirname(input_file.path)
13
23
  input_file.read.split("\n").reduce([]) do |res, line|
14
24
  res.push(*process_dsl_line(include_root, line))
15
25
  end.join("\n")
16
26
  end
17
27
 
28
+ private
29
+
18
30
  def process_dsl_line(include_root, line)
19
31
  process_include_line(include_root, process_comment_line(line))
20
32
  end
@@ -28,7 +40,7 @@ module Lutaml
28
40
 
29
41
  def process_include_line(include_root, line)
30
42
  include_path_match = line.match(/^\s*include\s+(.+)/)
31
- return line if include_path_match.nil?
43
+ return line if include_path_match.nil? || line =~ /^\s\*\*/
32
44
 
33
45
  path_to_file = include_path_match[1].strip
34
46
  path_to_file = if path_to_file.match?(/^\//)
@@ -37,6 +49,9 @@ module Lutaml
37
49
  File.join(include_root, path_to_file)
38
50
  end
39
51
  File.read(path_to_file).split("\n")
52
+ rescue Errno::ENOENT
53
+ puts("No such file or directory @ rb_sysopen - #{path_to_file}, \
54
+ include file paths need to be supplied relative to the main document")
40
55
  end
41
56
  end
42
57
  end
@@ -13,7 +13,8 @@ module Lutaml
13
13
  :contain,
14
14
  :static,
15
15
  :cardinality,
16
- :keyword
16
+ :keyword,
17
+ :is_derived
17
18
 
18
19
  # rubocop:disable Rails/ActiveRecordAliases
19
20
  def initialize(attributes = {})
@@ -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.0"
5
+ VERSION = "0.4.1"
6
6
  end
7
7
  end
data/lutaml-uml.gemspec CHANGED
@@ -25,13 +25,13 @@ Gem::Specification.new do |spec|
25
25
  spec.executables = %w[lutaml-wsd2uml lutaml-yaml2uml]
26
26
 
27
27
  spec.add_runtime_dependency "hashie", "~> 4.1.0"
28
- spec.add_runtime_dependency "parslet", "~> 1.7.1"
28
+ spec.add_runtime_dependency "parslet", "~> 2.0.0"
29
29
  spec.add_runtime_dependency "ruby-graphviz", "~> 1.2"
30
30
  spec.add_runtime_dependency "thor", "~> 1.0"
31
+ spec.add_runtime_dependency "nokogiri", "~> 1.10"
31
32
 
32
33
  spec.add_development_dependency "bundler", "~> 2.0"
33
34
  spec.add_development_dependency "byebug"
34
- spec.add_development_dependency "nokogiri", "~> 1.10"
35
35
  spec.add_development_dependency "pry", "~> 0.12.2"
36
36
  spec.add_development_dependency "rake", "~> 10.0"
37
37
  spec.add_development_dependency "rspec", "~> 3.0"
@@ -0,0 +1,34 @@
1
+ diagram MyView {
2
+ title "my diagram"
3
+
4
+ class AddressClassProfile {
5
+ addressClassProfile
6
+ }
7
+ class AttributeProfile {
8
+ attributeProfile
9
+ }
10
+
11
+ association BidirectionalAsscoiation {
12
+ owner_type aggregation
13
+ member_type direct
14
+ owner AddressClassProfile#addressClassProfile
15
+ member AttributeProfile#attributeProfile [0..*]
16
+ }
17
+
18
+ association DirectAsscoiation {
19
+ member_type direct
20
+ owner AddressClassProfile
21
+ member AttributeProfile#attributeProfile
22
+ }
23
+
24
+ class Foo {
25
+ +structuredidentifier[0..*]: StructuredIdentifierType
26
+ +technicalcommittee[1..*]: TechnicalCommitteeType
27
+ }
28
+
29
+ association ReverseAsscoiation {
30
+ owner_type aggregation
31
+ owner AddressClassProfile#addressClassProfile
32
+ member AttributeProfile
33
+ }
34
+ }
@@ -0,0 +1,6 @@
1
+ diagram MyView {
2
+ class ImageMapAreaType {
3
+ definition {
4
+ }
5
+ }
6
+ }
@@ -0,0 +1,8 @@
1
+ diagram MyView {
2
+ class ImageMapAreaType {
3
+ }
4
+ enum SomeEnum {
5
+ }
6
+ data_type SomeEnum {
7
+ }
8
+ }
@@ -0,0 +1,5 @@
1
+ diagram MyView {
2
+ title "my diagram"
3
+
4
+ ** include ../models/bipm_document/BipmCommitteeAcronym.lutaml
5
+ }
@@ -0,0 +1,6 @@
1
+ diagram MyView {
2
+ fontname "Arial"
3
+ title "my diagram"
4
+ include none_existing.lutaml
5
+ include none_existing1.lutaml
6
+ }
@@ -287,5 +287,57 @@ RSpec.describe Lutaml::Uml::Parsers::Dsl do
287
287
 
288
288
  it_behaves_like "the correct graphviz formatting"
289
289
  end
290
+
291
+ context "when defninition is blank" do
292
+ let(:content) do
293
+ File.new(fixtures_path("dsl/diagram_blank_definion.lutaml"))
294
+ end
295
+
296
+ it "successfully renders" do
297
+ expect { parse }.to_not(raise_error)
298
+ end
299
+ end
300
+
301
+ context "when there are blank definitions" do
302
+ let(:content) do
303
+ File.new(fixtures_path("dsl/diagram_blank_entities.lutaml"))
304
+ end
305
+
306
+ it "successfully renders" do
307
+ expect { parse }.to_not(raise_error)
308
+ end
309
+ end
310
+
311
+ context "when its a non existing include file" do
312
+ let(:content) do
313
+ File.new(fixtures_path("dsl/diagram_non_existing_include.lutaml"))
314
+ end
315
+
316
+ it "successfully renders" do
317
+ expect { parse }.to_not(raise_error)
318
+ end
319
+ end
320
+
321
+ context "when there are commented preprocessor lines" do
322
+ let(:content) do
323
+ File.new(fixtures_path("dsl/diagram_commented_includes.lutaml"))
324
+ end
325
+
326
+ it "successfully renders" do
327
+ expect { parse }.to_not(raise_error)
328
+ end
329
+ end
330
+
331
+ context "when broken lutaml file passed" do
332
+ let(:content) do
333
+ File.new(fixtures_path("dsl/broken_diagram.lutaml"))
334
+ end
335
+
336
+ it "returns error object and prints line number" do
337
+ expect { described_class.parse(content, {}) }
338
+ .to(raise_error(Lutaml::Uml::Parsers::ParsingError,
339
+ /but got ":" at line 25 char 32/))
340
+ end
341
+ end
290
342
  end
291
343
  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.0
4
+ version: 0.4.1
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-03-28 00:00:00.000000000 Z
11
+ date: 2021-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashie
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.7.1
33
+ version: 2.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.7.1
40
+ version: 2.0.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: ruby-graphviz
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -67,47 +67,47 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: bundler
70
+ name: nokogiri
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '2.0'
76
- type: :development
75
+ version: '1.10'
76
+ type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '2.0'
82
+ version: '1.10'
83
83
  - !ruby/object:Gem::Dependency
84
- name: byebug
84
+ name: bundler
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '2.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '2.0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: nokogiri
98
+ name: byebug
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: '1.10'
103
+ version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: '1.10'
110
+ version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: pry
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -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
@@ -276,16 +279,21 @@ files:
276
279
  - spec/fixtures/datamodel/views/AddressProfile.yml
277
280
  - spec/fixtures/datamodel/views/CommonModels.yml
278
281
  - spec/fixtures/datamodel/views/TopDown.yml
282
+ - spec/fixtures/dsl/broken_diagram.lutaml
279
283
  - spec/fixtures/dsl/diagram.lutaml
280
284
  - spec/fixtures/dsl/diagram_attributes.lutaml
285
+ - spec/fixtures/dsl/diagram_blank_definion.lutaml
286
+ - spec/fixtures/dsl/diagram_blank_entities.lutaml
281
287
  - spec/fixtures/dsl/diagram_class_assocation.lutaml
282
288
  - spec/fixtures/dsl/diagram_class_fields.lutaml
289
+ - spec/fixtures/dsl/diagram_commented_includes.lutaml
283
290
  - spec/fixtures/dsl/diagram_comments.lutaml
284
291
  - spec/fixtures/dsl/diagram_concept_model.lutaml
285
292
  - spec/fixtures/dsl/diagram_data_types.lutaml
286
293
  - spec/fixtures/dsl/diagram_definitions.lutaml
287
294
  - spec/fixtures/dsl/diagram_includes.lutaml
288
295
  - spec/fixtures/dsl/diagram_multiply_classes.lutaml
296
+ - spec/fixtures/dsl/diagram_non_existing_include.lutaml
289
297
  - spec/fixtures/dsl/shared.lutaml
290
298
  - spec/fixtures/dsl/shared1.lutaml
291
299
  - spec/fixtures/generated_dot/AddressClassProfile.dot
@@ -319,7 +327,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
319
327
  - !ruby/object:Gem::Version
320
328
  version: '0'
321
329
  requirements: []
322
- rubygems_version: 3.0.3
330
+ rubygems_version: 3.1.6
323
331
  signing_key:
324
332
  specification_version: 4
325
333
  summary: UML model module for LutaML.