drawio_dsl 0.5.3 → 0.5.6

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