drawio_dsl 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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