drawio_dsl 0.11.8 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +7 -0
- data/Gemfile +1 -1
- data/config/configuration.json +32 -4
- data/docs/printspeak-architecture-generator.drawio +153 -153
- data/docs/project-plan/project.drawio +93 -90
- data/docs/project-plan/project_in_progress.svg +1 -1
- data/docs/samples/styles-sketch.svg +1 -1
- data/docs/samples/themes-random.svg +1 -1
- data/docs/samples/willoughby-council.svg +1 -1
- data/docs/tailwind_domain_model-custom.drawio +21 -15
- data/lib/drawio_dsl/formatters/base_formatter.rb +19 -0
- data/lib/drawio_dsl/formatters/interface_formatter.rb +21 -1
- data/lib/drawio_dsl/formatters/klass_formatter.rb +20 -1
- data/lib/drawio_dsl/schema/page.rb +2 -0
- data/lib/drawio_dsl/schema/shape.rb +4 -20
- data/lib/drawio_dsl/version.rb +1 -1
- data/lib/drawio_dsl.rb +1 -1
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +2 -4
- data/docs/tailwind_domain_model.json +0 -288
- data/docs/tailwind_domain_model.svg +0 -3
@@ -1,22 +1,22 @@
|
|
1
1
|
<mxfile host="65bd71144e">
|
2
2
|
<diagram id="Yy3" name="Domain Modal">
|
3
|
-
<mxGraphModel dx="
|
3
|
+
<mxGraphModel dx="1775" dy="777" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" background="#fafafa" math="0" shadow="0">
|
4
4
|
<root>
|
5
5
|
<mxCell id="page_root_Yy3"/>
|
6
6
|
<mxCell id="node_root_Yy3" parent="page_root_Yy3"/>
|
7
|
-
<mxCell id="Yy3-2" value="Tailwind GEM" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#
|
8
|
-
<mxGeometry x="
|
7
|
+
<mxCell id="Yy3-2" value="Tailwind GEM" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d0cee2;strokeColor=#56517e;" parent="node_root_Yy3" vertex="1">
|
8
|
+
<mxGeometry x="13" y="10" width="1082" height="829" as="geometry"/>
|
9
9
|
</mxCell>
|
10
10
|
<mxCell id="Yy3-10" value="Schema" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;verticalAlign=top;fontSize=25;" parent="node_root_Yy3" vertex="1">
|
11
11
|
<mxGeometry x="115" y="551" width="750" height="263" as="geometry"/>
|
12
12
|
</mxCell>
|
13
|
-
<mxCell id="7" style="edgeStyle=orthogonalEdgeStyle;shape=connector;rounded=1;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;labelBackgroundColor=default;fontFamily=Helvetica;fontSize=25;fontColor=default;endArrow=classic;strokeColor=#6F0000;fillColor=#a20025;elbow=vertical;"
|
13
|
+
<mxCell id="7" style="edgeStyle=orthogonalEdgeStyle;shape=connector;rounded=1;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;labelBackgroundColor=default;fontFamily=Helvetica;fontSize=25;fontColor=default;endArrow=classic;strokeColor=#6F0000;fillColor=#a20025;elbow=vertical;" parent="node_root_Yy3" source="Yy3-11" target="Yy3-12" edge="1">
|
14
14
|
<mxGeometry relative="1" as="geometry"/>
|
15
15
|
</mxCell>
|
16
16
|
<mxCell id="Yy3-11" value="<p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>WebSite</b></p><hr size="1"/><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">target_folder: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">base_collection: Collection</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">theme: Theme</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">root: Page</p><hr size="1"/><p style="margin:0px;margin-left:4px;margin-bottom:4px">favourite_components() : A&lt;Component&gt;</p>" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" parent="node_root_Yy3" vertex="1">
|
17
17
|
<mxGeometry x="137" y="602" width="200" height="160" as="geometry"/>
|
18
18
|
</mxCell>
|
19
|
-
<mxCell id="8" style="edgeStyle=orthogonalEdgeStyle;shape=connector;rounded=1;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;labelBackgroundColor=default;fontFamily=Helvetica;fontSize=25;fontColor=default;endArrow=classic;strokeColor=#6F0000;fillColor=#a20025;elbow=vertical;"
|
19
|
+
<mxCell id="8" style="edgeStyle=orthogonalEdgeStyle;shape=connector;rounded=1;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;labelBackgroundColor=default;fontFamily=Helvetica;fontSize=25;fontColor=default;endArrow=classic;strokeColor=#6F0000;fillColor=#a20025;elbow=vertical;" parent="node_root_Yy3" source="Yy3-12" target="Yy3-13" edge="1">
|
20
20
|
<mxGeometry relative="1" as="geometry"/>
|
21
21
|
</mxCell>
|
22
22
|
<mxCell id="Yy3-12" value="<p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Page</b></p><hr size="1"/><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">sub_folder: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">level: Integer</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">pages: A&lt;Page&gt;</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">components: A&lt;Component&gt;</p>" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" parent="node_root_Yy3" vertex="1">
|
@@ -35,16 +35,16 @@
|
|
35
35
|
<mxGeometry x="661" y="855" width="200" height="160" as="geometry"/>
|
36
36
|
</mxCell>
|
37
37
|
<mxCell id="abc1" value="DataBuilder" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;verticalAlign=top;fontSize=25;" parent="node_root_Yy3" vertex="1">
|
38
|
-
<mxGeometry x="
|
38
|
+
<mxGeometry x="87" y="1091" width="512" height="349" as="geometry"/>
|
39
39
|
</mxCell>
|
40
40
|
<mxCell id="Yy3-18" value="<p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>BaseDataBuilder</b></p><hr size="1"/><p style="margin:0px;margin-left:4px;margin-bottom:4px">obj: Hash</p>" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" parent="node_root_Yy3" vertex="1">
|
41
|
-
<mxGeometry x="
|
41
|
+
<mxGeometry x="130" y="1203" width="200" height="160" as="geometry"/>
|
42
42
|
</mxCell>
|
43
43
|
<mxCell id="Yy3-19" value="<p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><i>&lt;&lt; MixIn &gt;&gt;</i></p><p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Factory</b></p><hr size="1"/><p style="margin:0px;margin-left:4px;margin-bottom:4px">data()</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">data_instance()</p>" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" parent="node_root_Yy3" vertex="1">
|
44
|
-
<mxGeometry x="
|
44
|
+
<mxGeometry x="390" y="1203" width="160" height="160" as="geometry"/>
|
45
45
|
</mxCell>
|
46
|
-
<mxCell id="5" value="" style="group" vertex="1" connectable="0"
|
47
|
-
<mxGeometry x="
|
46
|
+
<mxCell id="5" value="" style="group" parent="node_root_Yy3" vertex="1" connectable="0">
|
47
|
+
<mxGeometry x="80" y="31" width="963" height="505" as="geometry"/>
|
48
48
|
</mxCell>
|
49
49
|
<mxCell id="Yy3-3" value="Configuration" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;verticalAlign=top;fontSize=25;" parent="5" vertex="1">
|
50
50
|
<mxGeometry width="963" height="505" as="geometry"/>
|
@@ -52,6 +52,9 @@
|
|
52
52
|
<mxCell id="Yy3-4" value="<p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Configuration</b></p><hr size="1"/><p style="margin:0px;margin-left:4px;margin-bottom:4px">collections: A&lt;Collection&gt;</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">themes: A&lt;Theme&gt;</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">data_shapes: A&lt;DataShape&gt;</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">component_groups: A&lt;ComponentGroup&gt;</p>" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" parent="5" vertex="1">
|
53
53
|
<mxGeometry x="30" y="147" width="242" height="100" as="geometry"/>
|
54
54
|
</mxCell>
|
55
|
+
<mxCell id="11" style="edgeStyle=orthogonalEdgeStyle;shape=connector;rounded=1;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=default;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;strokeColor=#6F0000;fillColor=#a20025;elbow=vertical;" edge="1" parent="5" source="Yy3-5" target="Yy3-6">
|
56
|
+
<mxGeometry relative="1" as="geometry"/>
|
57
|
+
</mxCell>
|
55
58
|
<mxCell id="Yy3-5" value="<p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Collection</b></p><hr size="1"/><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">component_groups: A&lt;ComponentGroup&gt;</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">default_themes: A&lt;Theme&gt;</p>" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" parent="5" vertex="1">
|
56
59
|
<mxGeometry x="406" y="46" width="249" height="104" as="geometry"/>
|
57
60
|
</mxCell>
|
@@ -61,7 +64,7 @@
|
|
61
64
|
<mxCell id="Yy3-6" value="<p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Theme</b></p><hr size="1"/><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p>" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" parent="5" vertex="1">
|
62
65
|
<mxGeometry x="404" y="166" width="250" height="84" as="geometry"/>
|
63
66
|
</mxCell>
|
64
|
-
<mxCell id="1" style="edgeStyle=orthogonalEdgeStyle;shape=connector;rounded=1;html=1;exitX=0.999;exitY=0.428;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;labelBackgroundColor=default;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;strokeColor=#6F0000;fillColor=#a20025;exitPerimeter=0;elbow=vertical;"
|
67
|
+
<mxCell id="1" style="edgeStyle=orthogonalEdgeStyle;shape=connector;rounded=1;html=1;exitX=0.999;exitY=0.428;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;labelBackgroundColor=default;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;strokeColor=#6F0000;fillColor=#a20025;exitPerimeter=0;elbow=vertical;" parent="5" source="Yy3-4" target="Yy3-6" edge="1">
|
65
68
|
<mxGeometry relative="1" as="geometry">
|
66
69
|
<Array as="points">
|
67
70
|
<mxPoint x="404" y="190"/>
|
@@ -71,19 +74,22 @@
|
|
71
74
|
<mxCell id="Yy3-7" value="<p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>ComponentGroup</b></p><hr size="1"/><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">collection: Collection</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">components: A&lt;Component&gt;</p>" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" parent="5" vertex="1">
|
72
75
|
<mxGeometry x="404" y="362" width="249" height="118" as="geometry"/>
|
73
76
|
</mxCell>
|
74
|
-
<mxCell id="3" style="edgeStyle=orthogonalEdgeStyle;shape=connector;rounded=1;html=1;exitX=1.007;exitY=0.898;exitDx=0;exitDy=0;labelBackgroundColor=default;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;strokeColor=#6F0000;fillColor=#a20025;exitPerimeter=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;elbow=vertical;"
|
77
|
+
<mxCell id="3" style="edgeStyle=orthogonalEdgeStyle;shape=connector;rounded=1;html=1;exitX=1.007;exitY=0.898;exitDx=0;exitDy=0;labelBackgroundColor=default;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;strokeColor=#6F0000;fillColor=#a20025;exitPerimeter=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;elbow=vertical;" parent="5" source="Yy3-4" target="Yy3-7" edge="1">
|
78
|
+
<mxGeometry relative="1" as="geometry"/>
|
79
|
+
</mxCell>
|
80
|
+
<mxCell id="12" style="edgeStyle=orthogonalEdgeStyle;shape=connector;rounded=1;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=default;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;strokeColor=#6F0000;fillColor=#a20025;elbow=vertical;" edge="1" parent="5" source="Yy3-8" target="Yy3-9">
|
75
81
|
<mxGeometry relative="1" as="geometry"/>
|
76
82
|
</mxCell>
|
77
83
|
<mxCell id="Yy3-8" value="<p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>Component</b></p><hr size="1"/><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">data_shape: DataShape</p>" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" parent="5" vertex="1">
|
78
84
|
<mxGeometry x="741" y="364" width="200" height="101" as="geometry"/>
|
79
85
|
</mxCell>
|
80
|
-
<mxCell id="4" style="edgeStyle=orthogonalEdgeStyle;shape=connector;rounded=1;html=1;exitX=1.003;exitY=0.888;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;labelBackgroundColor=default;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;strokeColor=#6F0000;fillColor=#a20025;exitPerimeter=0;"
|
86
|
+
<mxCell id="4" style="edgeStyle=orthogonalEdgeStyle;shape=connector;rounded=1;html=1;exitX=1.003;exitY=0.888;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;labelBackgroundColor=default;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;strokeColor=#6F0000;fillColor=#a20025;exitPerimeter=0;" parent="5" source="Yy3-7" target="Yy3-8" edge="1">
|
81
87
|
<mxGeometry relative="1" as="geometry"/>
|
82
88
|
</mxCell>
|
83
89
|
<mxCell id="Yy3-9" value="<p style="margin:0px;margin-left:4px;margin-bottom:4px;text-align:center"><b>DataShape</b></p><hr size="1"/><p style="margin:0px;margin-left:4px;margin-bottom:4px">key: Symbol</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">name: String</p><p style="margin:0px;margin-left:4px;margin-bottom:4px">description: String</p>" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica" parent="5" vertex="1">
|
84
90
|
<mxGeometry x="404" y="264" width="250" height="84" as="geometry"/>
|
85
91
|
</mxCell>
|
86
|
-
<mxCell id="2" style="edgeStyle=orthogonalEdgeStyle;shape=connector;rounded=1;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;labelBackgroundColor=default;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;strokeColor=#6F0000;fillColor=#a20025;elbow=vertical;"
|
92
|
+
<mxCell id="2" style="edgeStyle=orthogonalEdgeStyle;shape=connector;rounded=1;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;labelBackgroundColor=default;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;strokeColor=#6F0000;fillColor=#a20025;elbow=vertical;" parent="5" source="Yy3-4" target="Yy3-9" edge="1">
|
87
93
|
<mxGeometry relative="1" as="geometry">
|
88
94
|
<Array as="points">
|
89
95
|
<mxPoint x="368" y="222"/>
|
@@ -91,7 +97,7 @@
|
|
91
97
|
</Array>
|
92
98
|
</mxGeometry>
|
93
99
|
</mxCell>
|
94
|
-
<mxCell id="9" style="edgeStyle=orthogonalEdgeStyle;shape=connector;rounded=1;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;labelBackgroundColor=default;fontFamily=Helvetica;fontSize=25;fontColor=default;endArrow=classic;strokeColor=#6F0000;fillColor=#a20025;"
|
100
|
+
<mxCell id="9" style="edgeStyle=orthogonalEdgeStyle;shape=connector;rounded=1;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;labelBackgroundColor=default;fontFamily=Helvetica;fontSize=25;fontColor=default;endArrow=classic;strokeColor=#6F0000;fillColor=#a20025;" parent="node_root_Yy3" source="Yy3-12" target="Yy3-12" edge="1">
|
95
101
|
<mxGeometry relative="1" as="geometry">
|
96
102
|
<Array as="points">
|
97
103
|
<mxPoint x="382" y="782"/>
|
@@ -8,60 +8,73 @@ module DrawioDsl
|
|
8
8
|
class BaseFormatter
|
9
9
|
attr_reader :html
|
10
10
|
|
11
|
+
# items are separate to html and are used for building a hash for export
|
12
|
+
attr_reader :items
|
13
|
+
|
11
14
|
def initialize(element_style_defaults = {})
|
12
15
|
@html = DrawioDsl::Formatters::HtmlBuilder.new(element_style_defaults)
|
16
|
+
@items = []
|
13
17
|
end
|
14
18
|
|
15
19
|
def hr(size: 1)
|
16
20
|
html.hr(size: size)
|
21
|
+
items << { type: :hr }
|
17
22
|
|
18
23
|
self
|
19
24
|
end
|
20
25
|
|
21
26
|
def b(content, **opts)
|
22
27
|
html.b(content, **opts)
|
28
|
+
items << { type: :b, content: content }
|
23
29
|
|
24
30
|
self
|
25
31
|
end
|
26
32
|
|
27
33
|
def p(content, **opts)
|
28
34
|
html.p(content, **opts)
|
35
|
+
items << { type: :p, content: content }
|
29
36
|
|
30
37
|
self
|
31
38
|
end
|
32
39
|
|
33
40
|
def h1(content, **opts)
|
34
41
|
html.h1(content, **opts)
|
42
|
+
items << { type: :h1, content: content }
|
35
43
|
|
36
44
|
self
|
37
45
|
end
|
38
46
|
|
39
47
|
def h2(content, **opts)
|
40
48
|
html.h2(content, **opts)
|
49
|
+
items << { type: :h2, content: content }
|
41
50
|
|
42
51
|
self
|
43
52
|
end
|
44
53
|
|
45
54
|
def h3(content, **opts)
|
46
55
|
html.h3(content, **opts)
|
56
|
+
items << { type: :h3, content: content }
|
47
57
|
|
48
58
|
self
|
49
59
|
end
|
50
60
|
|
51
61
|
def h4(content, **opts)
|
52
62
|
html.h4(content, **opts)
|
63
|
+
items << { type: :h4, content: content }
|
53
64
|
|
54
65
|
self
|
55
66
|
end
|
56
67
|
|
57
68
|
def h5(content, **opts)
|
58
69
|
html.h5(content, **opts)
|
70
|
+
items << { type: :h5, content: content }
|
59
71
|
|
60
72
|
self
|
61
73
|
end
|
62
74
|
|
63
75
|
def h6(content, **opts)
|
64
76
|
html.h6(content, **opts)
|
77
|
+
items << { type: :h6, content: content }
|
65
78
|
|
66
79
|
self
|
67
80
|
end
|
@@ -92,6 +105,12 @@ module DrawioDsl
|
|
92
105
|
html.as_html(new_line: new_line)
|
93
106
|
end
|
94
107
|
|
108
|
+
def to_h
|
109
|
+
{
|
110
|
+
items: items.map(&:to_h)
|
111
|
+
}
|
112
|
+
end
|
113
|
+
|
95
114
|
private
|
96
115
|
|
97
116
|
# useful defaults
|
@@ -22,13 +22,21 @@ module DrawioDsl
|
|
22
22
|
)
|
23
23
|
end
|
24
24
|
|
25
|
-
def header(name, description: nil, interface_type: 'Interface')
|
25
|
+
def header(name, description: nil, namespace: nil, interface_type: 'Interface')
|
26
26
|
html.p("<i><< #{interface_type} >></i>", text_align: :center)
|
27
27
|
html.p("<b>#{name}</b>", text_align: :center)
|
28
28
|
html.hr
|
29
29
|
|
30
30
|
html.group(:description).p(description) if description
|
31
31
|
|
32
|
+
items << {
|
33
|
+
type: :interface,
|
34
|
+
name: name,
|
35
|
+
description: description,
|
36
|
+
namespace: namespace,
|
37
|
+
interface_type: interface_type
|
38
|
+
}
|
39
|
+
|
32
40
|
self
|
33
41
|
end
|
34
42
|
|
@@ -40,6 +48,12 @@ module DrawioDsl
|
|
40
48
|
end
|
41
49
|
html.group(:fields).p(value)
|
42
50
|
|
51
|
+
items << {
|
52
|
+
type: :field,
|
53
|
+
name: name,
|
54
|
+
return_type: type
|
55
|
+
}
|
56
|
+
|
43
57
|
self
|
44
58
|
end
|
45
59
|
|
@@ -51,6 +65,12 @@ module DrawioDsl
|
|
51
65
|
end
|
52
66
|
html.group(:methods).p(value)
|
53
67
|
|
68
|
+
items << {
|
69
|
+
type: :method,
|
70
|
+
name: name,
|
71
|
+
return_type: type
|
72
|
+
}
|
73
|
+
|
54
74
|
self
|
55
75
|
end
|
56
76
|
|
@@ -22,12 +22,19 @@ module DrawioDsl
|
|
22
22
|
)
|
23
23
|
end
|
24
24
|
|
25
|
-
def header(name, description: nil)
|
25
|
+
def header(name, description: nil, namespace: nil)
|
26
26
|
html.p("<b>#{name}</b>", text_align: :center)
|
27
27
|
html.hr
|
28
28
|
|
29
29
|
html.group(:description).p(description) if description
|
30
30
|
|
31
|
+
items << {
|
32
|
+
type: :class,
|
33
|
+
name: name,
|
34
|
+
description: description,
|
35
|
+
namespace: namespace
|
36
|
+
}
|
37
|
+
|
31
38
|
self
|
32
39
|
end
|
33
40
|
|
@@ -39,6 +46,12 @@ module DrawioDsl
|
|
39
46
|
end
|
40
47
|
html.group(:fields).p(value)
|
41
48
|
|
49
|
+
items << {
|
50
|
+
type: :field,
|
51
|
+
name: name,
|
52
|
+
return_type: type
|
53
|
+
}
|
54
|
+
|
42
55
|
self
|
43
56
|
end
|
44
57
|
|
@@ -50,6 +63,12 @@ module DrawioDsl
|
|
50
63
|
end
|
51
64
|
html.group(:methods).p(value)
|
52
65
|
|
66
|
+
items << {
|
67
|
+
type: :method,
|
68
|
+
name: name,
|
69
|
+
return_type: type
|
70
|
+
}
|
71
|
+
|
53
72
|
self
|
54
73
|
end
|
55
74
|
|
@@ -116,10 +116,12 @@ module DrawioDsl
|
|
116
116
|
def to_h
|
117
117
|
{
|
118
118
|
id: id,
|
119
|
+
active: active,
|
119
120
|
name: name,
|
120
121
|
position_x: position_x,
|
121
122
|
position_y: position_y,
|
122
123
|
theme: theme,
|
124
|
+
bg_theme: bg_theme,
|
123
125
|
palette: palette.to_h,
|
124
126
|
style: style.to_h,
|
125
127
|
settings: settings,
|
@@ -59,6 +59,7 @@ module DrawioDsl
|
|
59
59
|
instance_eval(&block) if block_given?
|
60
60
|
|
61
61
|
@value = formatter.empty? ? title : formatter.as_html
|
62
|
+
@meta_data = formatter.empty? ? { items: [{ type: :title, content: title }] } : formatter.to_h
|
62
63
|
end
|
63
64
|
|
64
65
|
def shape_defaults
|
@@ -93,18 +94,6 @@ module DrawioDsl
|
|
93
94
|
def style
|
94
95
|
return @style if defined? @style
|
95
96
|
|
96
|
-
# key_values = []
|
97
|
-
# key_values << "whiteSpace=#{white_space}" if white_space
|
98
|
-
# key_values << "html=#{html}" if html
|
99
|
-
# key_values << "rounded=#{rounded}" if rounded
|
100
|
-
# key_values << "shadow=#{shadow}" if shadow
|
101
|
-
# key_values << "sketch=#{sketch}" if sketch
|
102
|
-
# key_values << "glass=#{glass}" if glass
|
103
|
-
# key_values << "fillColor=#{fill_color}" if fill_color
|
104
|
-
# key_values << "strokeColor=#{stroke_color}" if stroke_color
|
105
|
-
# key_values << "fontColor=#{font_color}" if font_color
|
106
|
-
# key_values << "gradient=#{gradient}" if gradient
|
107
|
-
|
108
97
|
add_base_modifiers
|
109
98
|
|
110
99
|
@style_builder.add_kv('whiteSpace', white_space) if white_space
|
@@ -119,18 +108,11 @@ module DrawioDsl
|
|
119
108
|
@style_builder.add_kv('gradient', gradient) if gradient
|
120
109
|
@style_builder.add(style_modifiers)
|
121
110
|
|
122
|
-
# key_values << base_modifiers unless base_modifiers.empty?
|
123
|
-
# key_values << style_modifiers unless style_modifiers.empty?
|
124
|
-
# @style_builder.add(style_modifiers) unless style_modifiers.empty?
|
125
|
-
|
126
|
-
# key_values.join(';')
|
127
111
|
@style = @style_builder.style
|
128
112
|
end
|
129
113
|
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
130
114
|
|
131
115
|
def as_xml(xml)
|
132
|
-
# log.error category
|
133
|
-
# log.error key
|
134
116
|
draw_element(xml) if is_a?(Element) || is_a?(Text)
|
135
117
|
draw_line(xml) if is_a?(Line)
|
136
118
|
end
|
@@ -157,7 +139,9 @@ module DrawioDsl
|
|
157
139
|
y: y,
|
158
140
|
w: w,
|
159
141
|
h: h,
|
160
|
-
style: style
|
142
|
+
style: style,
|
143
|
+
value: value,
|
144
|
+
meta_data: @meta_data
|
161
145
|
}
|
162
146
|
result[:nodes] = nodes.to_h if nodes.any?
|
163
147
|
result
|
data/lib/drawio_dsl/version.rb
CHANGED
data/lib/drawio_dsl.rb
CHANGED
@@ -29,7 +29,7 @@ require_relative 'drawio_dsl/drawio_extensions'
|
|
29
29
|
require_relative 'drawio_dsl/drawio_page'
|
30
30
|
require_relative 'drawio_dsl/drawio'
|
31
31
|
|
32
|
-
if ENV
|
32
|
+
if ENV.fetch('KLUE_DEBUG', 'false').downcase == 'true'
|
33
33
|
namespace = 'DrawioDsl::Version'
|
34
34
|
file_path = $LOADED_FEATURES.find { |f| f.include?('drawio_dsl/version') }
|
35
35
|
version = DrawioDsl::VERSION.ljust(9)
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "drawio_dsl",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.12.0",
|
4
4
|
"lockfileVersion": 2,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "drawio_dsl",
|
9
|
-
"version": "0.
|
9
|
+
"version": "0.12.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
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
|
+
version: 0.12.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-
|
11
|
+
date: 2022-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: k_config
|
@@ -281,8 +281,6 @@ files:
|
|
281
281
|
- docs/samples/themes-square.svg
|
282
282
|
- docs/samples/willoughby-council.svg
|
283
283
|
- docs/tailwind_domain_model-custom.drawio
|
284
|
-
- docs/tailwind_domain_model.json
|
285
|
-
- docs/tailwind_domain_model.svg
|
286
284
|
- lib/drawio_dsl.rb
|
287
285
|
- lib/drawio_dsl/configuration.rb
|
288
286
|
- lib/drawio_dsl/configuration_extension.rb
|