drawio_dsl 0.5.2 → 0.5.3
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 +4 -4
- data/.builders/.data/shapes.json +93 -0
- data/.builders/.templates/basic/configuration_shapes.rb +3 -3
- data/.builders/.templates/basic/schema_require.rb +1 -0
- data/.builders/blueprint/shapes.rb +39 -31
- data/.builders/generators/02-generate-app.rb +2 -0
- data/.builders/generators/project_plans/drawio_dsl.rb +24 -0
- data/.builders/generators/sample_diagrams/50-willoughby-council.rb +36 -22
- data/.rubocop.yml +3 -0
- data/CHANGELOG.md +7 -0
- data/lib/drawio_dsl/configuration_shapes.rb +46 -34
- data/lib/drawio_dsl/dom_builder_shapes.rb +35 -0
- data/lib/drawio_dsl/drawio_shapes.rb +72 -30
- data/lib/drawio_dsl/schema/_.rb +7 -0
- data/lib/drawio_dsl/schema/layouts/grid_layout.rb +2 -2
- data/lib/drawio_dsl/schema/node.rb +29 -24
- data/lib/drawio_dsl/schema/shapes/h1.rb +9 -0
- data/lib/drawio_dsl/schema/shapes/h2.rb +9 -0
- data/lib/drawio_dsl/schema/shapes/h3.rb +9 -0
- data/lib/drawio_dsl/schema/shapes/h4.rb +9 -0
- data/lib/drawio_dsl/schema/shapes/h5.rb +9 -0
- data/lib/drawio_dsl/schema/shapes/h6.rb +9 -0
- data/lib/drawio_dsl/schema/shapes/p.rb +9 -0
- data/lib/drawio_dsl/schema/shapes/shape.rb +9 -4
- data/lib/drawio_dsl/version.rb +1 -1
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +10 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4e735678bedd529db9a041d28a842688541af3ed033de9d668db46dbfc27d0a9
|
|
4
|
+
data.tar.gz: 3405bc43946cff333fc0f6f8d0d80a0b6148499661c503493e08e41b096b177f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f43ae6045334b52711170355daca9fed592dbd2fbfae1600f7b2292ba97fe3945aca83beb847dbdf4fff4fcefb6a1925f332faffe2092efb792901085bb7c190
|
|
7
|
+
data.tar.gz: 7772b8d310b725a5cd328bc7d8c4494d733ff120dc2b18583e49206f3b3d4a44697d0f31e46767a93afb2f46b91bbd8dbe258400083a5feccaefa0c086f60c4c
|
data/.builders/.data/shapes.json
CHANGED
|
@@ -1,6 +1,70 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"type": "h1",
|
|
4
|
+
"text_only": true,
|
|
5
|
+
"x": 0,
|
|
6
|
+
"y": 0,
|
|
7
|
+
"w": 100,
|
|
8
|
+
"h": 50,
|
|
9
|
+
"style_modifiers": "text;fontSize=89;fontColor=#ffffff;fontStyle=1;fillColor=none"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"type": "h2",
|
|
13
|
+
"text_only": true,
|
|
14
|
+
"x": 0,
|
|
15
|
+
"y": 0,
|
|
16
|
+
"w": 100,
|
|
17
|
+
"h": 50,
|
|
18
|
+
"style_modifiers": "text;fontSize=67;fontColor=#ffffff;fontStyle=1;fillColor=none"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"type": "h3",
|
|
22
|
+
"text_only": true,
|
|
23
|
+
"x": 0,
|
|
24
|
+
"y": 0,
|
|
25
|
+
"w": 100,
|
|
26
|
+
"h": 50,
|
|
27
|
+
"style_modifiers": "text;fontSize=50;fontColor=#ffffff;fontStyle=1;fillColor=none"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"type": "h4",
|
|
31
|
+
"text_only": true,
|
|
32
|
+
"x": 0,
|
|
33
|
+
"y": 0,
|
|
34
|
+
"w": 100,
|
|
35
|
+
"h": 50,
|
|
36
|
+
"style_modifiers": "text;fontSize=37;fontColor=#ffffff;fontStyle=1;fillColor=none"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"type": "h5",
|
|
40
|
+
"text_only": true,
|
|
41
|
+
"x": 0,
|
|
42
|
+
"y": 0,
|
|
43
|
+
"w": 100,
|
|
44
|
+
"h": 50,
|
|
45
|
+
"style_modifiers": "text;fontSize=28;fontColor=#ffffff;fontStyle=1;fillColor=none"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"type": "h6",
|
|
49
|
+
"text_only": true,
|
|
50
|
+
"x": 0,
|
|
51
|
+
"y": 0,
|
|
52
|
+
"w": 100,
|
|
53
|
+
"h": 50,
|
|
54
|
+
"style_modifiers": "text;fontSize=21;fontColor=#ffffff;fontStyle=1;fillColor=none"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"type": "p",
|
|
58
|
+
"text_only": true,
|
|
59
|
+
"x": 0,
|
|
60
|
+
"y": 0,
|
|
61
|
+
"w": 100,
|
|
62
|
+
"h": 50,
|
|
63
|
+
"style_modifiers": "text;fontSize=16;fontColor=#ffffff;fontStyle=1;fillColor=none"
|
|
64
|
+
},
|
|
2
65
|
{
|
|
3
66
|
"type": "actor",
|
|
67
|
+
"text_only": false,
|
|
4
68
|
"x": 0,
|
|
5
69
|
"y": 0,
|
|
6
70
|
"w": 40,
|
|
@@ -9,6 +73,7 @@
|
|
|
9
73
|
},
|
|
10
74
|
{
|
|
11
75
|
"type": "actor2",
|
|
76
|
+
"text_only": false,
|
|
12
77
|
"x": 0,
|
|
13
78
|
"y": 0,
|
|
14
79
|
"w": 30,
|
|
@@ -17,6 +82,7 @@
|
|
|
17
82
|
},
|
|
18
83
|
{
|
|
19
84
|
"type": "callout",
|
|
85
|
+
"text_only": false,
|
|
20
86
|
"x": 0,
|
|
21
87
|
"y": 0,
|
|
22
88
|
"w": 160,
|
|
@@ -25,6 +91,7 @@
|
|
|
25
91
|
},
|
|
26
92
|
{
|
|
27
93
|
"type": "callout2",
|
|
94
|
+
"text_only": false,
|
|
28
95
|
"x": 0,
|
|
29
96
|
"y": 0,
|
|
30
97
|
"w": 160,
|
|
@@ -33,6 +100,7 @@
|
|
|
33
100
|
},
|
|
34
101
|
{
|
|
35
102
|
"type": "callout3",
|
|
103
|
+
"text_only": false,
|
|
36
104
|
"x": 0,
|
|
37
105
|
"y": 0,
|
|
38
106
|
"w": 160,
|
|
@@ -41,6 +109,7 @@
|
|
|
41
109
|
},
|
|
42
110
|
{
|
|
43
111
|
"type": "callout4",
|
|
112
|
+
"text_only": false,
|
|
44
113
|
"x": 0,
|
|
45
114
|
"y": 0,
|
|
46
115
|
"w": 160,
|
|
@@ -49,6 +118,7 @@
|
|
|
49
118
|
},
|
|
50
119
|
{
|
|
51
120
|
"type": "circle",
|
|
121
|
+
"text_only": false,
|
|
52
122
|
"x": 0,
|
|
53
123
|
"y": 0,
|
|
54
124
|
"w": 160,
|
|
@@ -57,6 +127,7 @@
|
|
|
57
127
|
},
|
|
58
128
|
{
|
|
59
129
|
"type": "cloud",
|
|
130
|
+
"text_only": false,
|
|
60
131
|
"x": 0,
|
|
61
132
|
"y": 0,
|
|
62
133
|
"w": 160,
|
|
@@ -65,6 +136,7 @@
|
|
|
65
136
|
},
|
|
66
137
|
{
|
|
67
138
|
"type": "cross",
|
|
139
|
+
"text_only": false,
|
|
68
140
|
"x": 0,
|
|
69
141
|
"y": 0,
|
|
70
142
|
"w": 50,
|
|
@@ -73,6 +145,7 @@
|
|
|
73
145
|
},
|
|
74
146
|
{
|
|
75
147
|
"type": "envelop",
|
|
148
|
+
"text_only": false,
|
|
76
149
|
"x": 0,
|
|
77
150
|
"y": 0,
|
|
78
151
|
"w": 160,
|
|
@@ -81,6 +154,7 @@
|
|
|
81
154
|
},
|
|
82
155
|
{
|
|
83
156
|
"type": "diamond",
|
|
157
|
+
"text_only": false,
|
|
84
158
|
"x": 0,
|
|
85
159
|
"y": 0,
|
|
86
160
|
"w": 100,
|
|
@@ -89,6 +163,7 @@
|
|
|
89
163
|
},
|
|
90
164
|
{
|
|
91
165
|
"type": "document",
|
|
166
|
+
"text_only": false,
|
|
92
167
|
"x": 0,
|
|
93
168
|
"y": 0,
|
|
94
169
|
"w": 160,
|
|
@@ -97,6 +172,7 @@
|
|
|
97
172
|
},
|
|
98
173
|
{
|
|
99
174
|
"type": "ellipse",
|
|
175
|
+
"text_only": false,
|
|
100
176
|
"x": 0,
|
|
101
177
|
"y": 0,
|
|
102
178
|
"w": 200,
|
|
@@ -105,6 +181,7 @@
|
|
|
105
181
|
},
|
|
106
182
|
{
|
|
107
183
|
"type": "hexagon",
|
|
184
|
+
"text_only": false,
|
|
108
185
|
"x": 0,
|
|
109
186
|
"y": 0,
|
|
110
187
|
"w": 200,
|
|
@@ -113,6 +190,7 @@
|
|
|
113
190
|
},
|
|
114
191
|
{
|
|
115
192
|
"type": "container",
|
|
193
|
+
"text_only": false,
|
|
116
194
|
"x": 0,
|
|
117
195
|
"y": 0,
|
|
118
196
|
"w": 160,
|
|
@@ -121,6 +199,7 @@
|
|
|
121
199
|
},
|
|
122
200
|
{
|
|
123
201
|
"type": "container2",
|
|
202
|
+
"text_only": false,
|
|
124
203
|
"x": 0,
|
|
125
204
|
"y": 0,
|
|
126
205
|
"w": 160,
|
|
@@ -129,6 +208,7 @@
|
|
|
129
208
|
},
|
|
130
209
|
{
|
|
131
210
|
"type": "container3",
|
|
211
|
+
"text_only": false,
|
|
132
212
|
"x": 0,
|
|
133
213
|
"y": 0,
|
|
134
214
|
"w": 160,
|
|
@@ -137,6 +217,7 @@
|
|
|
137
217
|
},
|
|
138
218
|
{
|
|
139
219
|
"type": "container4",
|
|
220
|
+
"text_only": false,
|
|
140
221
|
"x": 0,
|
|
141
222
|
"y": 0,
|
|
142
223
|
"w": 160,
|
|
@@ -145,6 +226,7 @@
|
|
|
145
226
|
},
|
|
146
227
|
{
|
|
147
228
|
"type": "note",
|
|
229
|
+
"text_only": false,
|
|
148
230
|
"x": 0,
|
|
149
231
|
"y": 0,
|
|
150
232
|
"w": 160,
|
|
@@ -153,6 +235,7 @@
|
|
|
153
235
|
},
|
|
154
236
|
{
|
|
155
237
|
"type": "process",
|
|
238
|
+
"text_only": false,
|
|
156
239
|
"x": 0,
|
|
157
240
|
"y": 0,
|
|
158
241
|
"w": 200,
|
|
@@ -161,6 +244,7 @@
|
|
|
161
244
|
},
|
|
162
245
|
{
|
|
163
246
|
"type": "rectangle",
|
|
247
|
+
"text_only": false,
|
|
164
248
|
"x": 0,
|
|
165
249
|
"y": 0,
|
|
166
250
|
"w": 200,
|
|
@@ -169,6 +253,7 @@
|
|
|
169
253
|
},
|
|
170
254
|
{
|
|
171
255
|
"type": "rectangle2",
|
|
256
|
+
"text_only": false,
|
|
172
257
|
"x": 0,
|
|
173
258
|
"y": 0,
|
|
174
259
|
"w": 200,
|
|
@@ -177,6 +262,7 @@
|
|
|
177
262
|
},
|
|
178
263
|
{
|
|
179
264
|
"type": "square",
|
|
265
|
+
"text_only": false,
|
|
180
266
|
"x": 0,
|
|
181
267
|
"y": 0,
|
|
182
268
|
"w": 160,
|
|
@@ -185,6 +271,7 @@
|
|
|
185
271
|
},
|
|
186
272
|
{
|
|
187
273
|
"type": "step",
|
|
274
|
+
"text_only": false,
|
|
188
275
|
"x": 0,
|
|
189
276
|
"y": 0,
|
|
190
277
|
"w": 120,
|
|
@@ -193,6 +280,7 @@
|
|
|
193
280
|
},
|
|
194
281
|
{
|
|
195
282
|
"type": "tick",
|
|
283
|
+
"text_only": false,
|
|
196
284
|
"x": 0,
|
|
197
285
|
"y": 0,
|
|
198
286
|
"w": 50,
|
|
@@ -201,6 +289,7 @@
|
|
|
201
289
|
},
|
|
202
290
|
{
|
|
203
291
|
"type": "face",
|
|
292
|
+
"text_only": false,
|
|
204
293
|
"x": 0,
|
|
205
294
|
"y": 0,
|
|
206
295
|
"w": 100,
|
|
@@ -209,6 +298,7 @@
|
|
|
209
298
|
},
|
|
210
299
|
{
|
|
211
300
|
"type": "triangle",
|
|
301
|
+
"text_only": false,
|
|
212
302
|
"x": 0,
|
|
213
303
|
"y": 0,
|
|
214
304
|
"w": 100,
|
|
@@ -217,6 +307,7 @@
|
|
|
217
307
|
},
|
|
218
308
|
{
|
|
219
309
|
"type": "embed_row",
|
|
310
|
+
"text_only": false,
|
|
220
311
|
"x": 0,
|
|
221
312
|
"y": 0,
|
|
222
313
|
"w": 200,
|
|
@@ -225,6 +316,7 @@
|
|
|
225
316
|
},
|
|
226
317
|
{
|
|
227
318
|
"type": "embed_col50",
|
|
319
|
+
"text_only": false,
|
|
228
320
|
"x": 0,
|
|
229
321
|
"y": 0,
|
|
230
322
|
"w": 50,
|
|
@@ -233,6 +325,7 @@
|
|
|
233
325
|
},
|
|
234
326
|
{
|
|
235
327
|
"type": "embed_col200",
|
|
328
|
+
"text_only": false,
|
|
236
329
|
"x": 0,
|
|
237
330
|
"y": 0,
|
|
238
331
|
"w": 150,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
module DrawioDsl
|
|
6
6
|
# Used to attach configuration to KConfig module
|
|
7
7
|
module ConfigurationShapes
|
|
8
|
-
ShapeDefaults = Struct.new(:type, :x, :y, :w, :h, :style_modifiers, keyword_init: true)
|
|
8
|
+
ShapeDefaults = Struct.new(:type, :text_only, :x, :y, :w, :h, :style_modifiers, keyword_init: true)
|
|
9
9
|
Shapes = Struct.new(
|
|
10
10
|
:shape,
|
|
11
11
|
{{#each shapes}}
|
|
@@ -16,9 +16,9 @@ module DrawioDsl
|
|
|
16
16
|
|
|
17
17
|
def add_shapes
|
|
18
18
|
@shapes = Shapes.new(
|
|
19
|
-
shape: ShapeDefaults.new(type: :shape, x: 0, y: 0, w: 20, h: 20, style_modifiers: ''),
|
|
19
|
+
shape: ShapeDefaults.new(type: :shape, text_only: false, x: 0, y: 0, w: 20, h: 20, style_modifiers: ''),
|
|
20
20
|
{{#each shapes}}
|
|
21
|
-
{{snake ./type}}: ShapeDefaults.new(type: :{{snake ./type}}, x: {{./x}}, y: {{./y}}, w: {{./w}}, h: {{./h}}, style_modifiers: '{{{./style_modifiers}}}'){{#if @last}}{{^}},{{/if}}
|
|
21
|
+
{{snake ./type}}: ShapeDefaults.new(type: :{{snake ./type}}, x: {{./x}}, text_only: {{./text_only}}, y: {{./y}}, w: {{./w}}, h: {{./h}}, style_modifiers: '{{{./style_modifiers}}}'){{#if @last}}{{^}},{{/if}}
|
|
22
22
|
{{/each}}
|
|
23
23
|
)
|
|
24
24
|
end
|
|
@@ -2,45 +2,53 @@ KManager.model :shapes, namespace: %i[domain] do
|
|
|
2
2
|
# microapp = import(:handlebars_helpers, :microapp)
|
|
3
3
|
|
|
4
4
|
table :shapes do
|
|
5
|
-
fields [:type, :x, :y, :w, :h, :style_modifiers]
|
|
5
|
+
fields [:type, :text_only, :x, :y, :w, :h, :style_modifiers]
|
|
6
6
|
|
|
7
7
|
# shape is a custom object
|
|
8
8
|
# row :shape , 0, 0, 20, 20, ''
|
|
9
9
|
|
|
10
10
|
# configuration for general purpose shapes
|
|
11
|
-
row :
|
|
12
|
-
row :
|
|
13
|
-
row :
|
|
14
|
-
row :
|
|
15
|
-
row :
|
|
16
|
-
row :
|
|
17
|
-
row :
|
|
18
|
-
|
|
19
|
-
row :
|
|
20
|
-
row :
|
|
21
|
-
row :
|
|
22
|
-
row :
|
|
23
|
-
row :
|
|
24
|
-
row :
|
|
25
|
-
row :
|
|
26
|
-
row :
|
|
27
|
-
row :
|
|
28
|
-
row :
|
|
29
|
-
row :
|
|
30
|
-
row :
|
|
31
|
-
row :
|
|
32
|
-
row :
|
|
33
|
-
row :
|
|
34
|
-
row :
|
|
35
|
-
row :
|
|
36
|
-
row :
|
|
37
|
-
row :
|
|
11
|
+
row :h1 , true, 0, 0, 100, 50, 'text;fontSize=89;fontColor=#ffffff;fontStyle=1;fillColor=none'
|
|
12
|
+
row :h2 , true, 0, 0, 100, 50, 'text;fontSize=67;fontColor=#ffffff;fontStyle=1;fillColor=none'
|
|
13
|
+
row :h3 , true, 0, 0, 100, 50, 'text;fontSize=50;fontColor=#ffffff;fontStyle=1;fillColor=none'
|
|
14
|
+
row :h4 , true, 0, 0, 100, 50, 'text;fontSize=37;fontColor=#ffffff;fontStyle=1;fillColor=none'
|
|
15
|
+
row :h5 , true, 0, 0, 100, 50, 'text;fontSize=28;fontColor=#ffffff;fontStyle=1;fillColor=none'
|
|
16
|
+
row :h6 , true, 0, 0, 100, 50, 'text;fontSize=21;fontColor=#ffffff;fontStyle=1;fillColor=none'
|
|
17
|
+
row :p , true, 0, 0, 100, 50, 'text;fontSize=16;fontColor=#ffffff;fontStyle=1;fillColor=none'
|
|
18
|
+
|
|
19
|
+
row :actor , false, 0, 0, 40, 50, 'shape=actor'
|
|
20
|
+
row :actor2 , false, 0, 0, 30, 50, 'shape=umlActor;verticalLabelPosition=bottom;outlineConnect=1'
|
|
21
|
+
row :callout , false, 0, 0, 160, 120, 'shape=callout'
|
|
22
|
+
row :callout2 , false, 0, 0, 160, 160, 'shape=mxgraph.basic.oval_callout'
|
|
23
|
+
row :callout3 , false, 0, 0, 160, 160, 'shape=mxgraph.basic.cloud_callout'
|
|
24
|
+
row :callout4 , false, 0, 0, 160, 120, 'shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;'
|
|
25
|
+
row :circle , false, 0, 0, 160, 160, 'ellipse'
|
|
26
|
+
row :cloud , false, 0, 0, 160, 160, 'shape=cloud'
|
|
27
|
+
row :cross , false, 0, 0, 50, 50, 'verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.x'
|
|
28
|
+
row :envelop , false, 0, 0, 160, 100, 'shape=message'
|
|
29
|
+
row :diamond , false, 0, 0, 100, 100, 'rhombus'
|
|
30
|
+
row :document , false, 0, 0, 160, 160, 'shape=mxgraph.basic.document'
|
|
31
|
+
row :ellipse , false, 0, 0, 200, 120, 'ellipse'
|
|
32
|
+
row :hexagon , false, 0, 0, 200, 120, 'shape=hexagon'
|
|
33
|
+
row :container , false, 0, 0, 160, 160, 'swimlane'
|
|
34
|
+
row :container2 , false, 0, 0, 160, 160, 'swimlane;horizontal=0'
|
|
35
|
+
row :container3 , false, 0, 0, 160, 160, 'swimlane;startSize=50'
|
|
36
|
+
row :container4 , false, 0, 0, 160, 160, 'swimlane;resizable=0'
|
|
37
|
+
row :note , false, 0, 0, 160, 160, 'shape=note'
|
|
38
|
+
row :process , false, 0, 0, 200, 120, 'shape=process'
|
|
39
|
+
row :rectangle , false, 0, 0, 200, 120, ''
|
|
40
|
+
row :rectangle2 , false, 0, 0, 200, 120, 'shape=mxgraph.basic.cloud_rect'
|
|
41
|
+
row :square , false, 0, 0, 160, 160, ''
|
|
42
|
+
row :step , false, 0, 0, 120, 80, 'shape=step;perimeter=stepPerimeter;fixedSize=1'
|
|
43
|
+
row :tick , false, 0, 0, 50, 50, 'verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.basic.tick'
|
|
44
|
+
row :face , false, 0, 0, 100, 100, 'verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.basic.smiley'
|
|
45
|
+
row :triangle , false, 0, 0, 100, 100, 'triangle'
|
|
38
46
|
|
|
39
47
|
# configuration for embedded element shape
|
|
40
48
|
# note that the width / height probably should be driven of parent shape
|
|
41
|
-
row :embed_row , 0, 0, 200, 40, 'shape=partialRectangle;collapsible=0;dropTarget=0;pointerEvents=0;top=0;left=0;bottom=1;right=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest'
|
|
42
|
-
row :embed_col50 , 0, 0, 50, 40, 'shape=partialRectangle;connectable=0;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden'
|
|
43
|
-
row :embed_col200 , 0, 0, 150, 40, 'shape=partialRectangle;connectable=0;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden'
|
|
49
|
+
row :embed_row , false, 0, 0, 200, 40, 'shape=partialRectangle;collapsible=0;dropTarget=0;pointerEvents=0;top=0;left=0;bottom=1;right=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest'
|
|
50
|
+
row :embed_col50 , false, 0, 0, 50, 40, 'shape=partialRectangle;connectable=0;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden'
|
|
51
|
+
row :embed_col200 , false, 0, 0, 150, 40, 'shape=partialRectangle;connectable=0;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden'
|
|
44
52
|
end
|
|
45
53
|
|
|
46
54
|
action do
|
|
@@ -17,6 +17,7 @@ KManager.action :requires do
|
|
|
17
17
|
|
|
18
18
|
add('schema/_.rb', template_file: 'schema_require.rb', shapes: shapes)
|
|
19
19
|
|
|
20
|
+
# build source code for each shape
|
|
20
21
|
shapes.each do |shape|
|
|
21
22
|
add("schema/shapes/#{shape['type']}.rb",
|
|
22
23
|
template_file: 'schema_shape.rb',
|
|
@@ -29,6 +30,7 @@ KManager.action :requires do
|
|
|
29
30
|
|
|
30
31
|
cd(:spec)
|
|
31
32
|
|
|
33
|
+
# build spec for each shape
|
|
32
34
|
shapes.each do |shape|
|
|
33
35
|
add("schema/shapes/#{shape['type']}_spec.rb",
|
|
34
36
|
template_file: 'schema_shape_spec.rb',
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
KManager.action :todo_drawio_dsl do
|
|
2
|
+
action do
|
|
3
|
+
|
|
4
|
+
# :rounded, :shadow, :sketch, :glass
|
|
5
|
+
director = DrawioDsl::Drawio
|
|
6
|
+
.init(k_builder, on_exist: :write, on_action: :execute)
|
|
7
|
+
.diagram(theme: :style_03)
|
|
8
|
+
.page('To Do', margin_left: 0, margin_top: 0, rounded: 1) do
|
|
9
|
+
grid_layout(direction: :vertical, grid_h: 120, grid_w: 400, wrap_at: 10, grid: 0)
|
|
10
|
+
|
|
11
|
+
h5(w: 400, h: 80, title: 'DrawIO DSL')
|
|
12
|
+
p(w: 400, h: 80, title: 'Project plan')
|
|
13
|
+
square(w: 300, h: 80, title: 'Enter report into system')
|
|
14
|
+
square(w: 300, h: 80, title: 'Preliminary Review')
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
diagram = DrawioDsl::XmlBuilder.new(director.builder.diagram)
|
|
18
|
+
|
|
19
|
+
director
|
|
20
|
+
.cd(:spec)
|
|
21
|
+
.add('project-plans/drawio_dsl.drawio', content: diagram.build)
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -4,30 +4,44 @@ KManager.action :bootstrap do
|
|
|
4
4
|
# :rounded, :shadow, :sketch, :glass
|
|
5
5
|
director = DrawioDsl::Drawio
|
|
6
6
|
.init(k_builder)
|
|
7
|
-
.diagram(theme: :
|
|
7
|
+
.diagram(theme: :style_03)
|
|
8
8
|
.page('Shapes', margin_left: 0, margin_top: 0, rounded: 1) do
|
|
9
|
-
grid_layout(
|
|
9
|
+
grid_layout(direction: :vertical, grid_h: 120, grid_w: 400, wrap_at: 10, grid: 0)
|
|
10
|
+
|
|
11
|
+
h5(w: 400, h: 80, title: 'Preparation for Investigation')
|
|
12
|
+
p(w: 400, h: 80, title: '(<b>source</b>: <i>Hunter & Central Coast Regional Environmental Management Strategy – Investigations guideline</i>)')
|
|
13
|
+
square(w: 300, h: 80, title: 'Enter report into system')
|
|
14
|
+
square(w: 300, h: 80, title: 'Preliminary Review')
|
|
15
|
+
square(w: 300, h: 80, title: 'Insufficient Information')
|
|
16
|
+
square(w: 300, h: 80, title: 'Seek Additional Information')
|
|
17
|
+
square(w: 300, h: 80, title: 'Identify Possible Breach')
|
|
18
|
+
square(w: 300, h: 80, title: 'Insufficient evidence or no breach detected')
|
|
19
|
+
square(w: 300, h: 80, title: 'Plan follow up action')
|
|
20
|
+
square(w: 300, h: 80, title: 'Establish Jurisdiction - Council or other agency?')
|
|
21
|
+
square(w: 300, h: 80, title: 'Refer to other agency')
|
|
22
|
+
square(w: 300, h: 80, title: 'Council Responsibility')
|
|
23
|
+
square(w: 300, h: 80, title: 'Plan investigation')
|
|
24
|
+
square(w: 300, h: 80, title: 'Conduct investigation Gather and manage evidence (Evidence Gathering Guideline)')
|
|
25
|
+
square(w: 300, h: 80, title: 'Prepare recommendations report')
|
|
26
|
+
square(w: 300, h: 80, title: 'Make decision')
|
|
27
|
+
square(w: 300, h: 80, title: 'Take action (Enforcement Options Guideline)')
|
|
28
|
+
square(w: 300, h: 80, title: 'Review investigation')
|
|
29
|
+
square(w: 300, h: 80, title: 'Close case')
|
|
30
|
+
square(w: 300, h: 80, title: 'Feedback to complainant')
|
|
31
|
+
|
|
32
|
+
grid_layout(wrap_at: 40, direction: :vertical, grid_w: 250, grid_h: 150, wrap_at: 5)
|
|
33
|
+
|
|
34
|
+
square(theme: :style_02, w: 240, h: 140, title: '1. Complaint received by Council gets recorded into the system.')
|
|
35
|
+
square(theme: :style_02, w: 240, h: 140, title: '2. Council Officer will review the nature of the complaint and consider what evidence or information it has.')
|
|
36
|
+
square(theme: :style_02, w: 240, h: 140, title: '3. If the information given thus far is insufficient Officer can go back to complainant and seek additional information.')
|
|
37
|
+
square(theme: :style_02, w: 240, h: 140, title: '4. With that information Council should be in a position to identify whether there has been a breach.')
|
|
38
|
+
square(theme: :style_02, w: 240, h: 140, title: '5. If there has been a breach: establish whether it's a matter for which the Council has jurisdiction (ie is it a piece of legislation for which the Council has the authority to enforce?).')
|
|
39
|
+
square(theme: :style_02, w: 240, h: 140, title: '6. If not: Council can refer that matter to another agency; such as Police, Fisheries, Transport NSW, EPA etc')
|
|
40
|
+
square(theme: :style_02, w: 240, h: 140, title: '7. If it is the Councils responsibility then Council needs to plan out the investigation. That will be through: gathering and collecting evidence through statements, observations, interviews, samples, items of interest.')
|
|
41
|
+
square(theme: :style_02, w: 240, h: 140, title: '8. The Council Officer should prepare a recommendations report which will: <br/>* go through the history of the matter <br/>* go through the investigations that have happened <br/>* go through the evidence that the Council has and then provide a recommendation as to the future action to be taken')
|
|
42
|
+
square(theme: :style_02, w: 240, h: 140, title: '9. Once the Council has that evidence and is in a position that it thinks it can MAKE A DECISION')
|
|
43
|
+
square(theme: :style_02, w: 240, h: 140, title: '10. TAKE ACTION: Once a decision is made as to the action that should happen in respect of the breach the council can then decide as to what the appropriate action is: WARNING, CIVIL, CRIMINAL and then proceed from there => it is important to keep the complainant informed throughout the entire process to be able to explain why you have taken the course you've taken and to be able to justify it')
|
|
10
44
|
|
|
11
|
-
square(w: 300, h: 100, title: 'PREPARATION FOR INVESTIGATION ')
|
|
12
|
-
square(w: 300, h: 100, title: '(source: Hunter & Central Coast Regional Environmental Management Strategy – Investigations guideline) ')
|
|
13
|
-
square(w: 300, h: 100, title: 'Enter report into system')
|
|
14
|
-
square(w: 300, h: 100, title: 'Preliminary Review ')
|
|
15
|
-
square(w: 300, h: 100, title: 'Insufficient Information ')
|
|
16
|
-
square(w: 300, h: 100, title: 'Seek Additional Information ')
|
|
17
|
-
square(w: 300, h: 100, title: 'Identify Possible Breach ')
|
|
18
|
-
square(w: 300, h: 100, title: 'Insufficient evidence or no breach detected ')
|
|
19
|
-
square(w: 300, h: 100, title: 'Plan follow up action ')
|
|
20
|
-
square(w: 300, h: 100, title: 'Establish Jurisdiction - Council or other agency? ')
|
|
21
|
-
square(w: 300, h: 100, title: 'Refer to other agency ')
|
|
22
|
-
square(w: 300, h: 100, title: 'Council Responsibility ')
|
|
23
|
-
square(w: 300, h: 100, title: 'Plan investigation ')
|
|
24
|
-
square(w: 300, h: 100, title: 'Conduct investigation Gather and manage evidence (Evidence Gathering Guideline) ')
|
|
25
|
-
square(w: 300, h: 100, title: 'Prepare recommendations report ')
|
|
26
|
-
square(w: 300, h: 100, title: 'Make decision ')
|
|
27
|
-
square(w: 300, h: 100, title: 'Take action (Enforcement Options Guideline) ')
|
|
28
|
-
square(w: 300, h: 100, title: 'Review investigation ')
|
|
29
|
-
square(w: 300, h: 100, title: 'Close case ')
|
|
30
|
-
square(w: 300, h: 100, title: 'Feedback to complainant ')
|
|
31
45
|
end
|
|
32
46
|
|
|
33
47
|
diagram = DrawioDsl::XmlBuilder.new(director.builder.diagram)
|
data/.rubocop.yml
CHANGED
|
@@ -77,6 +77,9 @@ Metrics/MethodLength:
|
|
|
77
77
|
- "lib/drawio_dsl/schema/shapes/page.rb"
|
|
78
78
|
- "lib/drawio_dsl/configuration_shapes.rb"
|
|
79
79
|
- "lib/drawio_dsl/configuration_themes.rb"
|
|
80
|
+
Metrics/PerceivedComplexity:
|
|
81
|
+
Exclude:
|
|
82
|
+
- "lib/drawio_dsl/drawio_shapes.rb"
|
|
80
83
|
Naming/MemoizedInstanceVariableName:
|
|
81
84
|
Enabled: false
|
|
82
85
|
Naming/AccessorMethodName:
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [0.5.2](https://github.com/klueless-io/drawio_dsl/compare/v0.5.1...v0.5.2) (2022-03-07)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* grid_h/w added and grid_size will drive those values ([372f262](https://github.com/klueless-io/drawio_dsl/commit/372f2626cb9daf8377d184af9746631d16cc9e50))
|
|
7
|
+
|
|
1
8
|
## [0.5.1](https://github.com/klueless-io/drawio_dsl/compare/v0.5.0...v0.5.1) (2022-03-07)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -5,9 +5,16 @@
|
|
|
5
5
|
module DrawioDsl
|
|
6
6
|
# Used to attach configuration to KConfig module
|
|
7
7
|
module ConfigurationShapes
|
|
8
|
-
ShapeDefaults = Struct.new(:type, :x, :y, :w, :h, :style_modifiers, keyword_init: true)
|
|
8
|
+
ShapeDefaults = Struct.new(:type, :text_only, :x, :y, :w, :h, :style_modifiers, keyword_init: true)
|
|
9
9
|
Shapes = Struct.new(
|
|
10
10
|
:shape,
|
|
11
|
+
:h1,
|
|
12
|
+
:h2,
|
|
13
|
+
:h3,
|
|
14
|
+
:h4,
|
|
15
|
+
:h5,
|
|
16
|
+
:h6,
|
|
17
|
+
:p,
|
|
11
18
|
:actor,
|
|
12
19
|
:actor2,
|
|
13
20
|
:callout,
|
|
@@ -43,39 +50,44 @@ module DrawioDsl
|
|
|
43
50
|
|
|
44
51
|
def add_shapes
|
|
45
52
|
@shapes = Shapes.new(
|
|
46
|
-
shape: ShapeDefaults.new(type: :shape, x: 0, y: 0, w: 20, h: 20, style_modifiers: ''),
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
53
|
+
shape: ShapeDefaults.new(type: :shape, text_only: false, x: 0, y: 0, w: 20, h: 20, style_modifiers: ''),
|
|
54
|
+
h1: ShapeDefaults.new(type: :h1, x: 0, text_only: true, y: 0, w: 100, h: 50, style_modifiers: 'text;fontSize=89;fontColor=#ffffff;fontStyle=1;fillColor=none'),
|
|
55
|
+
h2: ShapeDefaults.new(type: :h2, x: 0, text_only: true, y: 0, w: 100, h: 50, style_modifiers: 'text;fontSize=67;fontColor=#ffffff;fontStyle=1;fillColor=none'),
|
|
56
|
+
h3: ShapeDefaults.new(type: :h3, x: 0, text_only: true, y: 0, w: 100, h: 50, style_modifiers: 'text;fontSize=50;fontColor=#ffffff;fontStyle=1;fillColor=none'),
|
|
57
|
+
h4: ShapeDefaults.new(type: :h4, x: 0, text_only: true, y: 0, w: 100, h: 50, style_modifiers: 'text;fontSize=37;fontColor=#ffffff;fontStyle=1;fillColor=none'),
|
|
58
|
+
h5: ShapeDefaults.new(type: :h5, x: 0, text_only: true, y: 0, w: 100, h: 50, style_modifiers: 'text;fontSize=28;fontColor=#ffffff;fontStyle=1;fillColor=none'),
|
|
59
|
+
h6: ShapeDefaults.new(type: :h6, x: 0, text_only: true, y: 0, w: 100, h: 50, style_modifiers: 'text;fontSize=21;fontColor=#ffffff;fontStyle=1;fillColor=none'),
|
|
60
|
+
p: ShapeDefaults.new(type: :p, x: 0, text_only: true, y: 0, w: 100, h: 50, style_modifiers: 'text;fontSize=16;fontColor=#ffffff;fontStyle=1;fillColor=none'),
|
|
61
|
+
actor: ShapeDefaults.new(type: :actor, x: 0, text_only: false, y: 0, w: 40, h: 50, style_modifiers: 'shape=actor'),
|
|
62
|
+
actor2: ShapeDefaults.new(type: :actor2, x: 0, text_only: false, y: 0, w: 30, h: 50, style_modifiers: 'shape=umlActor;verticalLabelPosition=bottom;outlineConnect=1'),
|
|
63
|
+
callout: ShapeDefaults.new(type: :callout, x: 0, text_only: false, y: 0, w: 160, h: 120, style_modifiers: 'shape=callout'),
|
|
64
|
+
callout2: ShapeDefaults.new(type: :callout2, x: 0, text_only: false, y: 0, w: 160, h: 160, style_modifiers: 'shape=mxgraph.basic.oval_callout'),
|
|
65
|
+
callout3: ShapeDefaults.new(type: :callout3, x: 0, text_only: false, y: 0, w: 160, h: 160, style_modifiers: 'shape=mxgraph.basic.cloud_callout'),
|
|
66
|
+
callout4: ShapeDefaults.new(type: :callout4, x: 0, text_only: false, y: 0, w: 160, h: 120, style_modifiers: 'shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;'),
|
|
67
|
+
circle: ShapeDefaults.new(type: :circle, x: 0, text_only: false, y: 0, w: 160, h: 160, style_modifiers: 'ellipse'),
|
|
68
|
+
cloud: ShapeDefaults.new(type: :cloud, x: 0, text_only: false, y: 0, w: 160, h: 160, style_modifiers: 'shape=cloud'),
|
|
69
|
+
cross: ShapeDefaults.new(type: :cross, x: 0, text_only: false, y: 0, w: 50, h: 50, style_modifiers: 'verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.x'),
|
|
70
|
+
envelop: ShapeDefaults.new(type: :envelop, x: 0, text_only: false, y: 0, w: 160, h: 100, style_modifiers: 'shape=message'),
|
|
71
|
+
diamond: ShapeDefaults.new(type: :diamond, x: 0, text_only: false, y: 0, w: 100, h: 100, style_modifiers: 'rhombus'),
|
|
72
|
+
document: ShapeDefaults.new(type: :document, x: 0, text_only: false, y: 0, w: 160, h: 160, style_modifiers: 'shape=mxgraph.basic.document'),
|
|
73
|
+
ellipse: ShapeDefaults.new(type: :ellipse, x: 0, text_only: false, y: 0, w: 200, h: 120, style_modifiers: 'ellipse'),
|
|
74
|
+
hexagon: ShapeDefaults.new(type: :hexagon, x: 0, text_only: false, y: 0, w: 200, h: 120, style_modifiers: 'shape=hexagon'),
|
|
75
|
+
container: ShapeDefaults.new(type: :container, x: 0, text_only: false, y: 0, w: 160, h: 160, style_modifiers: 'swimlane'),
|
|
76
|
+
container2: ShapeDefaults.new(type: :container2, x: 0, text_only: false, y: 0, w: 160, h: 160, style_modifiers: 'swimlane;horizontal=0'),
|
|
77
|
+
container3: ShapeDefaults.new(type: :container3, x: 0, text_only: false, y: 0, w: 160, h: 160, style_modifiers: 'swimlane;startSize=50'),
|
|
78
|
+
container4: ShapeDefaults.new(type: :container4, x: 0, text_only: false, y: 0, w: 160, h: 160, style_modifiers: 'swimlane;resizable=0'),
|
|
79
|
+
note: ShapeDefaults.new(type: :note, x: 0, text_only: false, y: 0, w: 160, h: 160, style_modifiers: 'shape=note'),
|
|
80
|
+
process: ShapeDefaults.new(type: :process, x: 0, text_only: false, y: 0, w: 200, h: 120, style_modifiers: 'shape=process'),
|
|
81
|
+
rectangle: ShapeDefaults.new(type: :rectangle, x: 0, text_only: false, y: 0, w: 200, h: 120, style_modifiers: ''),
|
|
82
|
+
rectangle2: ShapeDefaults.new(type: :rectangle2, x: 0, text_only: false, y: 0, w: 200, h: 120, style_modifiers: 'shape=mxgraph.basic.cloud_rect'),
|
|
83
|
+
square: ShapeDefaults.new(type: :square, x: 0, text_only: false, y: 0, w: 160, h: 160, style_modifiers: ''),
|
|
84
|
+
step: ShapeDefaults.new(type: :step, x: 0, text_only: false, y: 0, w: 120, h: 80, style_modifiers: 'shape=step;perimeter=stepPerimeter;fixedSize=1'),
|
|
85
|
+
tick: ShapeDefaults.new(type: :tick, x: 0, text_only: false, y: 0, w: 50, h: 50, style_modifiers: 'verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.basic.tick'),
|
|
86
|
+
face: ShapeDefaults.new(type: :face, x: 0, text_only: false, y: 0, w: 100, h: 100, style_modifiers: 'verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.basic.smiley'),
|
|
87
|
+
triangle: ShapeDefaults.new(type: :triangle, x: 0, text_only: false, y: 0, w: 100, h: 100, style_modifiers: 'triangle'),
|
|
88
|
+
embed_row: ShapeDefaults.new(type: :embed_row, x: 0, text_only: false, y: 0, w: 200, h: 40, style_modifiers: 'shape=partialRectangle;collapsible=0;dropTarget=0;pointerEvents=0;top=0;left=0;bottom=1;right=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest'),
|
|
89
|
+
embed_col50: ShapeDefaults.new(type: :embed_col50, x: 0, text_only: false, y: 0, w: 50, h: 40, style_modifiers: 'shape=partialRectangle;connectable=0;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden'),
|
|
90
|
+
embed_col200: ShapeDefaults.new(type: :embed_col200, x: 0, text_only: false, y: 0, w: 150, h: 40, style_modifiers: 'shape=partialRectangle;connectable=0;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden')
|
|
79
91
|
)
|
|
80
92
|
end
|
|
81
93
|
end
|
|
@@ -4,6 +4,41 @@
|
|
|
4
4
|
module DrawioDsl
|
|
5
5
|
# DrawioDsl is a DSL for draw-io diagrams.
|
|
6
6
|
module DomBuilderShapes
|
|
7
|
+
def add_h1(**opts)
|
|
8
|
+
h1 = DrawioDsl::Schema::H1.new(current_page, **opts)
|
|
9
|
+
add_shape(h1)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def add_h2(**opts)
|
|
13
|
+
h2 = DrawioDsl::Schema::H2.new(current_page, **opts)
|
|
14
|
+
add_shape(h2)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def add_h3(**opts)
|
|
18
|
+
h3 = DrawioDsl::Schema::H3.new(current_page, **opts)
|
|
19
|
+
add_shape(h3)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def add_h4(**opts)
|
|
23
|
+
h4 = DrawioDsl::Schema::H4.new(current_page, **opts)
|
|
24
|
+
add_shape(h4)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def add_h5(**opts)
|
|
28
|
+
h5 = DrawioDsl::Schema::H5.new(current_page, **opts)
|
|
29
|
+
add_shape(h5)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def add_h6(**opts)
|
|
33
|
+
h6 = DrawioDsl::Schema::H6.new(current_page, **opts)
|
|
34
|
+
add_shape(h6)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def add_p(**opts)
|
|
38
|
+
p = DrawioDsl::Schema::P.new(current_page, **opts)
|
|
39
|
+
add_shape(p)
|
|
40
|
+
end
|
|
41
|
+
|
|
7
42
|
def add_actor(**opts)
|
|
8
43
|
actor = DrawioDsl::Schema::Actor.new(current_page, **opts)
|
|
9
44
|
add_shape(actor)
|
|
@@ -5,70 +5,112 @@ module DrawioDsl
|
|
|
5
5
|
# :nocov:
|
|
6
6
|
module DrawioShapes
|
|
7
7
|
def random(**opts)
|
|
8
|
-
case rand(
|
|
8
|
+
case rand(37)
|
|
9
9
|
when 0
|
|
10
|
-
|
|
10
|
+
h1(**opts)
|
|
11
11
|
when 1
|
|
12
|
-
|
|
12
|
+
h2(**opts)
|
|
13
13
|
when 2
|
|
14
|
-
|
|
14
|
+
h3(**opts)
|
|
15
15
|
when 3
|
|
16
|
-
|
|
16
|
+
h4(**opts)
|
|
17
17
|
when 4
|
|
18
|
-
|
|
18
|
+
h5(**opts)
|
|
19
19
|
when 5
|
|
20
|
-
|
|
20
|
+
h6(**opts)
|
|
21
21
|
when 6
|
|
22
|
-
|
|
22
|
+
p(**opts)
|
|
23
23
|
when 7
|
|
24
|
-
|
|
24
|
+
actor(**opts)
|
|
25
25
|
when 8
|
|
26
|
-
|
|
26
|
+
actor2(**opts)
|
|
27
27
|
when 9
|
|
28
|
-
|
|
28
|
+
callout(**opts)
|
|
29
29
|
when 10
|
|
30
|
-
|
|
30
|
+
callout2(**opts)
|
|
31
31
|
when 11
|
|
32
|
-
|
|
32
|
+
callout3(**opts)
|
|
33
33
|
when 12
|
|
34
|
-
|
|
34
|
+
callout4(**opts)
|
|
35
35
|
when 13
|
|
36
|
-
|
|
36
|
+
circle(**opts)
|
|
37
37
|
when 14
|
|
38
|
-
|
|
38
|
+
cloud(**opts)
|
|
39
39
|
when 15
|
|
40
|
-
|
|
40
|
+
cross(**opts)
|
|
41
41
|
when 16
|
|
42
|
-
|
|
42
|
+
envelop(**opts)
|
|
43
43
|
when 17
|
|
44
|
-
|
|
44
|
+
diamond(**opts)
|
|
45
45
|
when 18
|
|
46
|
-
|
|
46
|
+
document(**opts)
|
|
47
47
|
when 19
|
|
48
|
-
|
|
48
|
+
ellipse(**opts)
|
|
49
49
|
when 20
|
|
50
|
-
|
|
50
|
+
hexagon(**opts)
|
|
51
51
|
when 21
|
|
52
|
-
|
|
52
|
+
container(**opts)
|
|
53
53
|
when 22
|
|
54
|
-
|
|
54
|
+
container2(**opts)
|
|
55
55
|
when 23
|
|
56
|
-
|
|
56
|
+
container3(**opts)
|
|
57
57
|
when 24
|
|
58
|
-
|
|
58
|
+
container4(**opts)
|
|
59
59
|
when 25
|
|
60
|
-
|
|
60
|
+
note(**opts)
|
|
61
61
|
when 26
|
|
62
|
-
|
|
62
|
+
process(**opts)
|
|
63
63
|
when 27
|
|
64
|
-
|
|
64
|
+
rectangle(**opts)
|
|
65
65
|
when 28
|
|
66
|
-
|
|
66
|
+
rectangle2(**opts)
|
|
67
67
|
when 29
|
|
68
|
+
square(**opts)
|
|
69
|
+
when 30
|
|
70
|
+
step(**opts)
|
|
71
|
+
when 31
|
|
72
|
+
tick(**opts)
|
|
73
|
+
when 32
|
|
74
|
+
face(**opts)
|
|
75
|
+
when 33
|
|
76
|
+
triangle(**opts)
|
|
77
|
+
when 34
|
|
78
|
+
embed_row(**opts)
|
|
79
|
+
when 35
|
|
80
|
+
embed_col50(**opts)
|
|
81
|
+
when 36
|
|
68
82
|
embed_col200(**opts)
|
|
69
83
|
end
|
|
70
84
|
end
|
|
71
85
|
|
|
86
|
+
def h1(**opts)
|
|
87
|
+
builder.add_h1(**opts)
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def h2(**opts)
|
|
91
|
+
builder.add_h2(**opts)
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def h3(**opts)
|
|
95
|
+
builder.add_h3(**opts)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def h4(**opts)
|
|
99
|
+
builder.add_h4(**opts)
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def h5(**opts)
|
|
103
|
+
builder.add_h5(**opts)
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def h6(**opts)
|
|
107
|
+
builder.add_h6(**opts)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def p(**opts)
|
|
111
|
+
builder.add_p(**opts)
|
|
112
|
+
end
|
|
113
|
+
|
|
72
114
|
def actor(**opts)
|
|
73
115
|
builder.add_actor(**opts)
|
|
74
116
|
end
|
data/lib/drawio_dsl/schema/_.rb
CHANGED
|
@@ -12,6 +12,13 @@ require_relative 'layouts/flex_layout'
|
|
|
12
12
|
require_relative 'layouts/grid_layout'
|
|
13
13
|
|
|
14
14
|
require_relative 'shapes/shape'
|
|
15
|
+
require_relative 'shapes/h1'
|
|
16
|
+
require_relative 'shapes/h2'
|
|
17
|
+
require_relative 'shapes/h3'
|
|
18
|
+
require_relative 'shapes/h4'
|
|
19
|
+
require_relative 'shapes/h5'
|
|
20
|
+
require_relative 'shapes/h6'
|
|
21
|
+
require_relative 'shapes/p'
|
|
15
22
|
require_relative 'shapes/actor'
|
|
16
23
|
require_relative 'shapes/actor2'
|
|
17
24
|
require_relative 'shapes/callout'
|
|
@@ -88,7 +88,7 @@ module DrawioDsl
|
|
|
88
88
|
|
|
89
89
|
# Flow down to the next row
|
|
90
90
|
page.position_x = anchor_x
|
|
91
|
-
page.position_y +=
|
|
91
|
+
page.position_y += grid_h
|
|
92
92
|
@cell_no = 1
|
|
93
93
|
end
|
|
94
94
|
|
|
@@ -101,7 +101,7 @@ module DrawioDsl
|
|
|
101
101
|
|
|
102
102
|
# Flow right to the next column
|
|
103
103
|
page.position_y = anchor_y
|
|
104
|
-
page.position_x +=
|
|
104
|
+
page.position_x += grid_w
|
|
105
105
|
@cell_no = 1
|
|
106
106
|
end
|
|
107
107
|
end
|
|
@@ -22,32 +22,37 @@ module DrawioDsl
|
|
|
22
22
|
}
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
-
#
|
|
26
|
-
#
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
# :nocov:
|
|
26
|
+
# rubocop:disable Metrics/AbcSize
|
|
27
|
+
def debug(format: :detail)
|
|
28
|
+
if format == :detail
|
|
29
|
+
debug_detail(to_h)
|
|
30
|
+
else
|
|
31
|
+
debug_row(classification, id)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
32
34
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
def debug_detail(**key_values)
|
|
36
|
+
key_values.each do |key, value|
|
|
37
|
+
puts "#{key.to_s.ljust(15)}: #{value}"
|
|
38
|
+
end
|
|
39
|
+
end
|
|
38
40
|
|
|
39
|
-
#
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
41
|
+
# rubocop:disable Metrics/ParameterLists
|
|
42
|
+
def debug_row(classification, id, type = nil, x = nil, y = nil, width = nil, height = nil)
|
|
43
|
+
row = []
|
|
44
|
+
row << classification.to_s.ljust(11)
|
|
45
|
+
row << id.to_s.ljust(6)
|
|
46
|
+
row << (type.nil? ? '' : type).to_s.ljust(15)
|
|
47
|
+
row << (x.nil? ? '' : x).to_s.rjust(5)
|
|
48
|
+
row << (y.nil? ? '' : y).to_s.rjust(5)
|
|
49
|
+
row << (width.nil? ? '' : width).to_s.rjust(5)
|
|
50
|
+
row << (height.nil? ? '' : height).to_s.rjust(5)
|
|
51
|
+
puts row.join(' | ')
|
|
52
|
+
end
|
|
53
|
+
# rubocop:enable Metrics/ParameterLists
|
|
54
|
+
# :nocov:
|
|
51
55
|
end
|
|
56
|
+
# rubocop:enable Metrics/AbcSize
|
|
52
57
|
end
|
|
53
58
|
end
|
|
@@ -8,7 +8,10 @@ module DrawioDsl
|
|
|
8
8
|
attr_reader :shape_defaults
|
|
9
9
|
|
|
10
10
|
def configure_shape(name)
|
|
11
|
-
|
|
11
|
+
unless KConfig.configuration.drawio.shapes.members.include?(name)
|
|
12
|
+
puts "Shape #{name} not found in configuration"
|
|
13
|
+
return
|
|
14
|
+
end
|
|
12
15
|
|
|
13
16
|
config = KConfig.configuration.drawio.shapes[name]
|
|
14
17
|
|
|
@@ -35,6 +38,7 @@ module DrawioDsl
|
|
|
35
38
|
attr_accessor :gradient
|
|
36
39
|
|
|
37
40
|
attr_accessor :type
|
|
41
|
+
attr_accessor :text_only
|
|
38
42
|
attr_accessor :x
|
|
39
43
|
attr_accessor :y
|
|
40
44
|
attr_accessor :w
|
|
@@ -66,16 +70,17 @@ module DrawioDsl
|
|
|
66
70
|
@glass = args[:glass] || page.style.glass
|
|
67
71
|
|
|
68
72
|
@type = args[:type] || shape_defaults.type
|
|
73
|
+
@text_only = args[:text_only] || shape_defaults.text_only
|
|
69
74
|
@x = args[:x] || shape_defaults.x
|
|
70
75
|
@y = args[:y] || shape_defaults.y
|
|
71
76
|
@w = args[:w] || shape_defaults.w
|
|
72
77
|
@h = args[:h] || shape_defaults.h
|
|
73
78
|
@style_modifiers = args[:style_modifiers] || shape_defaults.style_modifiers
|
|
74
79
|
|
|
75
|
-
@fill_color = args[:fill_color] || theme_palette.fill_color
|
|
76
|
-
@stroke_color = args[:stroke_color] || theme_palette.stroke_color
|
|
80
|
+
@fill_color = args[:fill_color] || (text_only ? nil : theme_palette.fill_color)
|
|
81
|
+
@stroke_color = args[:stroke_color] || (text_only ? nil : theme_palette.stroke_color)
|
|
82
|
+
@gradient = args[:gradient] || (text_only ? nil : theme_palette.gradient)
|
|
77
83
|
@font_color = args[:font_color] || theme_palette.font_color
|
|
78
|
-
@gradient = args[:gradient] || theme_palette.gradient
|
|
79
84
|
end
|
|
80
85
|
|
|
81
86
|
def style
|
data/lib/drawio_dsl/version.rb
CHANGED
data/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "drawio_dsl",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"lockfileVersion": 2,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "drawio_dsl",
|
|
9
|
-
"version": "0.5.
|
|
9
|
+
"version": "0.5.3",
|
|
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
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.5.
|
|
4
|
+
version: 0.5.3
|
|
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-
|
|
11
|
+
date: 2022-03-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: k_config
|
|
@@ -85,6 +85,7 @@ files:
|
|
|
85
85
|
- ".builders/boot.rb"
|
|
86
86
|
- ".builders/generators/01-bootstrap.rb"
|
|
87
87
|
- ".builders/generators/02-generate-app.rb"
|
|
88
|
+
- ".builders/generators/project_plans/drawio_dsl.rb"
|
|
88
89
|
- ".builders/generators/sample_diagrams/10-page-margin.rb"
|
|
89
90
|
- ".builders/generators/sample_diagrams/15-grid-direction.rb"
|
|
90
91
|
- ".builders/generators/sample_diagrams/16-grid-alignment.rb"
|
|
@@ -146,8 +147,15 @@ files:
|
|
|
146
147
|
- lib/drawio_dsl/schema/shapes/embed_row.rb
|
|
147
148
|
- lib/drawio_dsl/schema/shapes/envelop.rb
|
|
148
149
|
- lib/drawio_dsl/schema/shapes/face.rb
|
|
150
|
+
- lib/drawio_dsl/schema/shapes/h1.rb
|
|
151
|
+
- lib/drawio_dsl/schema/shapes/h2.rb
|
|
152
|
+
- lib/drawio_dsl/schema/shapes/h3.rb
|
|
153
|
+
- lib/drawio_dsl/schema/shapes/h4.rb
|
|
154
|
+
- lib/drawio_dsl/schema/shapes/h5.rb
|
|
155
|
+
- lib/drawio_dsl/schema/shapes/h6.rb
|
|
149
156
|
- lib/drawio_dsl/schema/shapes/hexagon.rb
|
|
150
157
|
- lib/drawio_dsl/schema/shapes/note.rb
|
|
158
|
+
- lib/drawio_dsl/schema/shapes/p.rb
|
|
151
159
|
- lib/drawio_dsl/schema/shapes/process.rb
|
|
152
160
|
- lib/drawio_dsl/schema/shapes/rectangle.rb
|
|
153
161
|
- lib/drawio_dsl/schema/shapes/rectangle2.rb
|