drawio_dsl 0.4.1 → 0.5.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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.builders/.data/shapes.json +144 -8
  3. data/.builders/.templates/basic/configuration_shapes.rb +27 -0
  4. data/.builders/.templates/basic/dom_builder_shapes.rb +16 -0
  5. data/.builders/.templates/basic/drawio_shapes.rb +23 -0
  6. data/.builders/.templates/basic/schema_shape.rb +9 -0
  7. data/.builders/.templates/{schema_shape_spec.rb → basic/schema_shape_spec.rb} +2 -2
  8. data/.builders/blueprint/shapes.rb +31 -12
  9. data/.builders/boot.rb +1 -0
  10. data/.builders/generators/02-generate-app.rb +43 -0
  11. data/.builders/generators/sample_diagrams/25-themes.rb +2 -2
  12. data/.builders/generators/sample_diagrams/30-shapes.rb +23 -0
  13. data/.rubocop.yml +20 -3
  14. data/CHANGELOG.md +7 -0
  15. data/README.md +4 -0
  16. data/lib/drawio_dsl/configuration.rb +5 -101
  17. data/lib/drawio_dsl/configuration_extension.rb +13 -0
  18. data/lib/drawio_dsl/configuration_shapes.rb +75 -0
  19. data/lib/drawio_dsl/configuration_themes.rb +63 -0
  20. data/lib/drawio_dsl/dom_builder.rb +4 -50
  21. data/lib/drawio_dsl/dom_builder_shapes.rb +143 -0
  22. data/lib/drawio_dsl/drawio.rb +1 -91
  23. data/lib/drawio_dsl/drawio_shapes.rb +175 -0
  24. data/lib/drawio_dsl/schema/_.rb +17 -0
  25. data/{.builders/.templates/schema_shape.rb → lib/drawio_dsl/schema/shapes/actor.rb} +2 -2
  26. data/lib/drawio_dsl/schema/shapes/actor2.rb +9 -0
  27. data/lib/drawio_dsl/schema/shapes/callout2.rb +9 -0
  28. data/lib/drawio_dsl/schema/shapes/callout3.rb +9 -0
  29. data/lib/drawio_dsl/schema/shapes/callout4.rb +9 -0
  30. data/lib/drawio_dsl/schema/shapes/container.rb +9 -0
  31. data/lib/drawio_dsl/schema/shapes/container2.rb +9 -0
  32. data/lib/drawio_dsl/schema/shapes/container3.rb +9 -0
  33. data/lib/drawio_dsl/schema/shapes/container4.rb +9 -0
  34. data/lib/drawio_dsl/schema/shapes/cross.rb +9 -0
  35. data/lib/drawio_dsl/schema/shapes/document.rb +9 -0
  36. data/lib/drawio_dsl/schema/shapes/envelop.rb +9 -0
  37. data/lib/drawio_dsl/schema/shapes/face.rb +9 -0
  38. data/lib/drawio_dsl/schema/shapes/rectangle2.rb +9 -0
  39. data/lib/drawio_dsl/schema/shapes/shape.rb +4 -6
  40. data/lib/drawio_dsl/schema/shapes/step.rb +9 -0
  41. data/lib/drawio_dsl/schema/shapes/tick.rb +9 -0
  42. data/lib/drawio_dsl/schema/shapes/triangle.rb +9 -0
  43. data/lib/drawio_dsl/version.rb +1 -1
  44. data/lib/drawio_dsl.rb +5 -0
  45. data/package-lock.json +2 -2
  46. data/package.json +1 -1
  47. metadata +31 -5
  48. data/.builders/generators/90-requires.rb +0 -35
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Actor2 < Shape
6
+ configure_shape(:actor2)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Callout2 < Shape
6
+ configure_shape(:callout2)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Callout3 < Shape
6
+ configure_shape(:callout3)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Callout4 < Shape
6
+ configure_shape(:callout4)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Container < Shape
6
+ configure_shape(:container)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Container2 < Shape
6
+ configure_shape(:container2)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Container3 < Shape
6
+ configure_shape(:container3)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Container4 < Shape
6
+ configure_shape(:container4)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Cross < Shape
6
+ configure_shape(:cross)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Document < Shape
6
+ configure_shape(:document)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Envelop < Shape
6
+ configure_shape(:envelop)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Face < Shape
6
+ configure_shape(:face)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Rectangle2 < Shape
6
+ configure_shape(:rectangle2)
7
+ end
8
+ end
9
+ end
@@ -5,6 +5,8 @@ module DrawioDsl
5
5
  # Shape is a graphical element, it can be a shape, a text, or a group (todo)
6
6
  class Shape < Node
7
7
  class << self
8
+ attr_reader :shape_defaults
9
+
8
10
  def configure_shape(name)
9
11
  raise "Shape #{name} not found in configuration" unless KConfig.configuration.drawio.shapes.members.include?(name)
10
12
 
@@ -12,12 +14,6 @@ module DrawioDsl
12
14
 
13
15
  @shape_defaults = config.clone
14
16
  end
15
-
16
- def shape_defaults
17
- return @shape_defaults if defined? @shape_defaults
18
-
19
- raise 'Shape defaults not configured'
20
- end
21
17
  end
22
18
 
23
19
  configure_shape(:shape)
@@ -113,6 +109,7 @@ module DrawioDsl
113
109
  }
114
110
  end
115
111
 
112
+ # :nocov:
116
113
  def debug(format: :detail)
117
114
  if format == :detail
118
115
  debug_detail({ id: id, classification: classification, type: type })
@@ -120,6 +117,7 @@ module DrawioDsl
120
117
  debug_row(classification, id, type, x, y, w, h)
121
118
  end
122
119
  end
120
+ # :nocov:
123
121
  end
124
122
  end
125
123
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Step < Shape
6
+ configure_shape(:step)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Tick < Shape
6
+ configure_shape(:tick)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Triangle < Shape
6
+ configure_shape(:triangle)
7
+ end
8
+ end
9
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DrawioDsl
4
- VERSION = '0.4.1'
4
+ VERSION = '0.5.0'
5
5
  end
data/lib/drawio_dsl.rb CHANGED
@@ -7,12 +7,17 @@ require 'k_config'
7
7
  require 'k_log'
8
8
  require 'k_director'
9
9
 
10
+ require_relative 'drawio_dsl/configuration_extension'
11
+ require_relative 'drawio_dsl/configuration_shapes'
12
+ require_relative 'drawio_dsl/configuration_themes'
10
13
  require_relative 'drawio_dsl/configuration'
11
14
  require_relative 'drawio_dsl/version'
12
15
  require_relative 'drawio_dsl/schema/_'
16
+ require_relative 'drawio_dsl/dom_builder_shapes'
13
17
  require_relative 'drawio_dsl/dom_builder'
14
18
  require_relative 'drawio_dsl/xml_builder'
15
19
  require_relative 'drawio_dsl/layout_engine'
20
+ require_relative 'drawio_dsl/drawio_shapes'
16
21
  require_relative 'drawio_dsl/drawio'
17
22
 
18
23
  module DrawioDsl
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "drawio_dsl",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "drawio_dsl",
9
- "version": "0.4.1",
9
+ "version": "0.5.0",
10
10
  "devDependencies": {
11
11
  "@klueless-js/semantic-release-rubygem": "github:klueless-js/semantic-release-rubygem",
12
12
  "@semantic-release/changelog": "^6.0.1",
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drawio_dsl",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "description": "DrawIO DSL can build DrawIO diagrams using a Domain Specific Language",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drawio_dsl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-06 00:00:00.000000000 Z
11
+ date: 2022-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: k_config
@@ -74,19 +74,23 @@ extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
76
  - ".builders/.data/shapes.json"
77
+ - ".builders/.templates/basic/configuration_shapes.rb"
78
+ - ".builders/.templates/basic/dom_builder_shapes.rb"
79
+ - ".builders/.templates/basic/drawio_shapes.rb"
77
80
  - ".builders/.templates/basic/schema_require.rb"
78
- - ".builders/.templates/schema_shape.rb"
79
- - ".builders/.templates/schema_shape_spec.rb"
81
+ - ".builders/.templates/basic/schema_shape.rb"
82
+ - ".builders/.templates/basic/schema_shape_spec.rb"
80
83
  - ".builders/_.rb"
81
84
  - ".builders/blueprint/shapes.rb"
82
85
  - ".builders/boot.rb"
83
86
  - ".builders/generators/01-bootstrap.rb"
84
- - ".builders/generators/90-requires.rb"
87
+ - ".builders/generators/02-generate-app.rb"
85
88
  - ".builders/generators/sample_diagrams/10-page-margin.rb"
86
89
  - ".builders/generators/sample_diagrams/15-grid-direction.rb"
87
90
  - ".builders/generators/sample_diagrams/16-grid-alignment.rb"
88
91
  - ".builders/generators/sample_diagrams/20-styles.rb"
89
92
  - ".builders/generators/sample_diagrams/25-themes.rb"
93
+ - ".builders/generators/sample_diagrams/30-shapes.rb"
90
94
  - ".releaserc.json"
91
95
  - ".rspec"
92
96
  - ".rubocop.yml"
@@ -102,8 +106,13 @@ files:
102
106
  - bin/setup
103
107
  - lib/drawio_dsl.rb
104
108
  - lib/drawio_dsl/configuration.rb
109
+ - lib/drawio_dsl/configuration_extension.rb
110
+ - lib/drawio_dsl/configuration_shapes.rb
111
+ - lib/drawio_dsl/configuration_themes.rb
105
112
  - lib/drawio_dsl/dom_builder.rb
113
+ - lib/drawio_dsl/dom_builder_shapes.rb
106
114
  - lib/drawio_dsl/drawio.rb
115
+ - lib/drawio_dsl/drawio_shapes.rb
107
116
  - lib/drawio_dsl/layout_engine.rb
108
117
  - lib/drawio_dsl/schema/_.rb
109
118
  - lib/drawio_dsl/schema/common_style.rb
@@ -114,17 +123,34 @@ files:
114
123
  - lib/drawio_dsl/schema/layouts/layout.rb
115
124
  - lib/drawio_dsl/schema/node.rb
116
125
  - lib/drawio_dsl/schema/page.rb
126
+ - lib/drawio_dsl/schema/shapes/actor.rb
127
+ - lib/drawio_dsl/schema/shapes/actor2.rb
117
128
  - lib/drawio_dsl/schema/shapes/callout.rb
129
+ - lib/drawio_dsl/schema/shapes/callout2.rb
130
+ - lib/drawio_dsl/schema/shapes/callout3.rb
131
+ - lib/drawio_dsl/schema/shapes/callout4.rb
118
132
  - lib/drawio_dsl/schema/shapes/circle.rb
119
133
  - lib/drawio_dsl/schema/shapes/cloud.rb
134
+ - lib/drawio_dsl/schema/shapes/container.rb
135
+ - lib/drawio_dsl/schema/shapes/container2.rb
136
+ - lib/drawio_dsl/schema/shapes/container3.rb
137
+ - lib/drawio_dsl/schema/shapes/container4.rb
138
+ - lib/drawio_dsl/schema/shapes/cross.rb
120
139
  - lib/drawio_dsl/schema/shapes/diamond.rb
140
+ - lib/drawio_dsl/schema/shapes/document.rb
121
141
  - lib/drawio_dsl/schema/shapes/ellipse.rb
142
+ - lib/drawio_dsl/schema/shapes/envelop.rb
143
+ - lib/drawio_dsl/schema/shapes/face.rb
122
144
  - lib/drawio_dsl/schema/shapes/hexagon.rb
123
145
  - lib/drawio_dsl/schema/shapes/note.rb
124
146
  - lib/drawio_dsl/schema/shapes/process.rb
125
147
  - lib/drawio_dsl/schema/shapes/rectangle.rb
148
+ - lib/drawio_dsl/schema/shapes/rectangle2.rb
126
149
  - lib/drawio_dsl/schema/shapes/shape.rb
127
150
  - lib/drawio_dsl/schema/shapes/square.rb
151
+ - lib/drawio_dsl/schema/shapes/step.rb
152
+ - lib/drawio_dsl/schema/shapes/tick.rb
153
+ - lib/drawio_dsl/schema/shapes/triangle.rb
128
154
  - lib/drawio_dsl/version.rb
129
155
  - lib/drawio_dsl/xml_builder.rb
130
156
  - package-lock.json
@@ -1,35 +0,0 @@
1
- KManager.action :requires do
2
- # NOT yet working on file change
3
- # depend_on(:domain_shapes_kdoc)
4
-
5
- # init do
6
- # # context.shapes = import_data(:domain_shapes_kdoc, as: :ostruct)
7
- # end
8
-
9
- action do
10
- shapes_file = k_builder.target_folders.get_filename(:data, 'shapes.json')
11
- shapes = JSON.parse(File.read(shapes_file))
12
- puts 'david'
13
- KDirector::Dsls::BasicDsl
14
- .init(k_builder,
15
- on_exist: :write, # %i[skip write compare]
16
- on_action: :execute # %i[queue execute]
17
- )
18
- .blueprint(
19
- active: true,
20
- name: :bin_hook,
21
- description: 'initialize repository',
22
- on_exist: :write) do
23
-
24
- cd(:lib)
25
-
26
- add('schema/_.rb.txt', template_file: 'schema_require.rb', shapes: shapes)
27
- end
28
-
29
-
30
- # # director.play_actions
31
- # director.builder.debug
32
- # director.debug
33
- # director.k_builder.debug
34
- end
35
- end