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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/.builders/boot.rb +1 -0
  3. data/.builders/generators/project_plans/drawio_dsl.rb +49 -14
  4. data/.builders/generators/sample_diagrams/05-samples.rb +23 -0
  5. data/.builders/generators/sample_diagrams/10-page-margin.rb +4 -8
  6. data/.builders/generators/sample_diagrams/15-grid-direction.rb +9 -7
  7. data/.builders/generators/sample_diagrams/16-grid-alignment.rb +6 -9
  8. data/.builders/generators/sample_diagrams/20-styles.rb +43 -45
  9. data/.builders/generators/sample_diagrams/25-themes.rb +21 -8
  10. data/.builders/generators/sample_diagrams/50-willoughby-council.rb +5 -6
  11. data/CHANGELOG.md +22 -0
  12. data/README.md +6 -3
  13. data/docs/project-plan.md +24 -0
  14. data/docs/project_done.svg +3 -0
  15. data/docs/project_in_progress.svg +3 -0
  16. data/docs/project_todo.svg +3 -0
  17. data/docs/samples/grid-alignment-center.svg +3 -0
  18. data/docs/samples/grid-alignment.svg +3 -0
  19. data/docs/samples/grid-direction-horizontal.svg +3 -0
  20. data/docs/samples/grid-direction-vertical.svg +3 -0
  21. data/docs/samples/samples.md +48 -0
  22. data/docs/samples/samples.svg +3 -0
  23. data/docs/samples/styles-glass.svg +3 -0
  24. data/docs/samples/styles-plain.svg +3 -0
  25. data/docs/samples/styles-rounded.svg +3 -0
  26. data/docs/samples/styles-shadow.svg +3 -0
  27. data/docs/samples/styles-sketch.svg +3 -0
  28. data/docs/samples/themes-circle.svg +3 -0
  29. data/docs/samples/themes-random.svg +3 -0
  30. data/docs/samples/themes-square.svg +3 -0
  31. data/docs/samples/willoughby-council.svg +3 -0
  32. data/lib/drawio_dsl/drawio.rb +47 -0
  33. data/lib/drawio_dsl/version.rb +1 -1
  34. data/package-lock.json +2 -2
  35. data/package.json +1 -1
  36. metadata +21 -2
  37. data/.builders/generators/sample_diagrams/30-shapes.rb +0 -23
@@ -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.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DrawioDsl
4
- VERSION = '0.5.3'
4
+ VERSION = '0.5.6'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "drawio_dsl",
3
- "version": "0.5.3",
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.3",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drawio_dsl",
3
- "version": "0.5.3",
3
+ "version": "0.5.6",
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,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.3
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