drawio_dsl 0.5.3 → 0.5.6
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/boot.rb +1 -0
- data/.builders/generators/project_plans/drawio_dsl.rb +49 -14
- data/.builders/generators/sample_diagrams/05-samples.rb +23 -0
- data/.builders/generators/sample_diagrams/10-page-margin.rb +4 -8
- data/.builders/generators/sample_diagrams/15-grid-direction.rb +9 -7
- data/.builders/generators/sample_diagrams/16-grid-alignment.rb +6 -9
- data/.builders/generators/sample_diagrams/20-styles.rb +43 -45
- data/.builders/generators/sample_diagrams/25-themes.rb +21 -8
- data/.builders/generators/sample_diagrams/50-willoughby-council.rb +5 -6
- data/CHANGELOG.md +22 -0
- data/README.md +6 -3
- data/docs/project-plan.md +24 -0
- data/docs/project_done.svg +3 -0
- data/docs/project_in_progress.svg +3 -0
- data/docs/project_todo.svg +3 -0
- data/docs/samples/grid-alignment-center.svg +3 -0
- data/docs/samples/grid-alignment.svg +3 -0
- data/docs/samples/grid-direction-horizontal.svg +3 -0
- data/docs/samples/grid-direction-vertical.svg +3 -0
- data/docs/samples/samples.md +48 -0
- data/docs/samples/samples.svg +3 -0
- data/docs/samples/styles-glass.svg +3 -0
- data/docs/samples/styles-plain.svg +3 -0
- data/docs/samples/styles-rounded.svg +3 -0
- data/docs/samples/styles-shadow.svg +3 -0
- data/docs/samples/styles-sketch.svg +3 -0
- data/docs/samples/themes-circle.svg +3 -0
- data/docs/samples/themes-random.svg +3 -0
- data/docs/samples/themes-square.svg +3 -0
- data/docs/samples/willoughby-council.svg +3 -0
- data/lib/drawio_dsl/drawio.rb +47 -0
- data/lib/drawio_dsl/version.rb +1 -1
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +21 -2
- data/.builders/generators/sample_diagrams/30-shapes.rb +0 -23
data/lib/drawio_dsl/drawio.rb
CHANGED
@@ -5,6 +5,8 @@ module DrawioDsl
|
|
5
5
|
class Drawio < KDirector::Directors::BaseDirector
|
6
6
|
default_builder_type(DrawioDsl::DomBuilder)
|
7
7
|
|
8
|
+
attr_reader :last_save_file_name
|
9
|
+
|
8
10
|
def diagram(**opts)
|
9
11
|
builder.set_diagram(**opts)
|
10
12
|
|
@@ -19,6 +21,51 @@ module DrawioDsl
|
|
19
21
|
layout.call
|
20
22
|
self
|
21
23
|
end
|
24
|
+
|
25
|
+
def save(file_name, **opts)
|
26
|
+
diagram = DrawioDsl::XmlBuilder.new(builder.diagram)
|
27
|
+
|
28
|
+
add(file_name, content: diagram.build, **opts)
|
29
|
+
|
30
|
+
# if last_save_file_name is nil then you are not in execute mode
|
31
|
+
@last_save_file_name = k_builder.last_output_file
|
32
|
+
|
33
|
+
self
|
34
|
+
end
|
35
|
+
|
36
|
+
def osave(file_name, **opts)
|
37
|
+
save(file_name, **{ open: :write }.merge(opts))
|
38
|
+
end
|
39
|
+
|
40
|
+
def export_svg(output_file_name, page: 1)
|
41
|
+
return unless last_save_file_name
|
42
|
+
return unless File.exist?(last_save_file_name)
|
43
|
+
|
44
|
+
page -= 1 # use zero based index
|
45
|
+
|
46
|
+
output_file_name = "#{output_file_name}.svg" unless output_file_name.end_with?('.svg')
|
47
|
+
|
48
|
+
command = "/Applications/draw.io.app/Contents/MacOS/draw.io '#{last_save_file_name}' -p #{page} -x -o #{output_file_name}"
|
49
|
+
|
50
|
+
run_command(command)
|
51
|
+
|
52
|
+
self
|
53
|
+
end
|
54
|
+
|
55
|
+
def export_png(output_file_name, page: 1)
|
56
|
+
return unless last_save_file_name
|
57
|
+
return unless File.exist?(last_save_file_name)
|
58
|
+
|
59
|
+
page -= 1 # use zero based index
|
60
|
+
|
61
|
+
output_file_name = "#{output_file_name}.png" unless output_file_name.end_with?('.png')
|
62
|
+
|
63
|
+
command = "/Applications/draw.io.app/Contents/MacOS/draw.io '#{last_save_file_name}' -p #{page} -x -o #{output_file_name}"
|
64
|
+
|
65
|
+
run_command(command)
|
66
|
+
|
67
|
+
self
|
68
|
+
end
|
22
69
|
end
|
23
70
|
|
24
71
|
# DrawioDsl::DrawioPage is created when you call .page on the draw-io DSL.
|
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.6",
|
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.6",
|
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,7 +1,7 @@
|
|
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.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
@@ -86,12 +86,12 @@ files:
|
|
86
86
|
- ".builders/generators/01-bootstrap.rb"
|
87
87
|
- ".builders/generators/02-generate-app.rb"
|
88
88
|
- ".builders/generators/project_plans/drawio_dsl.rb"
|
89
|
+
- ".builders/generators/sample_diagrams/05-samples.rb"
|
89
90
|
- ".builders/generators/sample_diagrams/10-page-margin.rb"
|
90
91
|
- ".builders/generators/sample_diagrams/15-grid-direction.rb"
|
91
92
|
- ".builders/generators/sample_diagrams/16-grid-alignment.rb"
|
92
93
|
- ".builders/generators/sample_diagrams/20-styles.rb"
|
93
94
|
- ".builders/generators/sample_diagrams/25-themes.rb"
|
94
|
-
- ".builders/generators/sample_diagrams/30-shapes.rb"
|
95
95
|
- ".builders/generators/sample_diagrams/50-willoughby-council.rb"
|
96
96
|
- ".releaserc.json"
|
97
97
|
- ".rspec"
|
@@ -106,6 +106,25 @@ files:
|
|
106
106
|
- Rakefile
|
107
107
|
- bin/console
|
108
108
|
- bin/setup
|
109
|
+
- docs/project-plan.md
|
110
|
+
- docs/project_done.svg
|
111
|
+
- docs/project_in_progress.svg
|
112
|
+
- docs/project_todo.svg
|
113
|
+
- docs/samples/grid-alignment-center.svg
|
114
|
+
- docs/samples/grid-alignment.svg
|
115
|
+
- docs/samples/grid-direction-horizontal.svg
|
116
|
+
- docs/samples/grid-direction-vertical.svg
|
117
|
+
- docs/samples/samples.md
|
118
|
+
- docs/samples/samples.svg
|
119
|
+
- docs/samples/styles-glass.svg
|
120
|
+
- docs/samples/styles-plain.svg
|
121
|
+
- docs/samples/styles-rounded.svg
|
122
|
+
- docs/samples/styles-shadow.svg
|
123
|
+
- docs/samples/styles-sketch.svg
|
124
|
+
- docs/samples/themes-circle.svg
|
125
|
+
- docs/samples/themes-random.svg
|
126
|
+
- docs/samples/themes-square.svg
|
127
|
+
- docs/samples/willoughby-council.svg
|
109
128
|
- lib/drawio_dsl.rb
|
110
129
|
- lib/drawio_dsl/configuration.rb
|
111
130
|
- lib/drawio_dsl/configuration_extension.rb
|
@@ -1,23 +0,0 @@
|
|
1
|
-
KManager.action :bootstrap do
|
2
|
-
action do
|
3
|
-
|
4
|
-
# :rounded, :shadow, :sketch, :glass
|
5
|
-
director = DrawioDsl::Drawio
|
6
|
-
.init(k_builder)
|
7
|
-
.diagram(theme: :style_06)
|
8
|
-
.page('Shapes', margin_left: 0, margin_top: 0) do
|
9
|
-
grid_layout(wrap_at: 5)
|
10
|
-
|
11
|
-
KConfig.configuration.drawio.shapes.members.each do |shape|
|
12
|
-
next if shape == :shape
|
13
|
-
|
14
|
-
send(shape, title: shape.to_s, shape: shape)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
diagram = DrawioDsl::XmlBuilder.new(director.builder.diagram)
|
19
|
-
|
20
|
-
File.write('../spec/.samples/drawio/30-shapes.xml', diagram.build)
|
21
|
-
File.write('../spec/.samples/drawio/30-shapes.drawio', diagram.build)
|
22
|
-
end
|
23
|
-
end
|