drawio_dsl 0.8.5 → 0.8.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/.builders/.data/shapes.json +9 -0
  3. data/.builders/blueprint/shapes.rb +1 -0
  4. data/.builders/generators/domain_diagram.rb +1 -0
  5. data/.builders/generators/project-plan.rb +8 -4
  6. data/.builders/generators/sample_diagrams/20-styles.rb +2 -2
  7. data/.builders/generators/sample_diagrams/30-html-shapes.rb +36 -14
  8. data/.builders/generators/sample_diagrams/35-ids-and-arrows.rb +0 -2
  9. data/.vscode/settings.json +2 -1
  10. data/CHANGELOG.md +22 -0
  11. data/README.md +0 -7
  12. data/docs/domain-modal/domain_model_custom.svg +1 -0
  13. data/docs/domain-modal.md +1 -1
  14. data/docs/domain_model.drawio +265 -0
  15. data/docs/domain_model.json +1038 -0
  16. data/docs/domain_model.svg +3 -0
  17. data/docs/project-plan/project.drawio +68 -56
  18. data/docs/project-plan/project_done.svg +1 -1
  19. data/docs/project-plan/project_in_progress.svg +1 -1
  20. data/docs/project-plan/project_todo.svg +1 -1
  21. data/docs/samples/styles-glass.svg +1 -1
  22. data/docs/samples/styles-plain.svg +1 -1
  23. data/docs/samples/styles-rounded.svg +1 -1
  24. data/docs/samples/styles-shadow.svg +1 -1
  25. data/docs/samples/styles-sketch.svg +1 -1
  26. data/lib/drawio_dsl/configuration_shapes.rb +3 -1
  27. data/lib/drawio_dsl/dom_builder_shapes.rb +7 -1
  28. data/lib/drawio_dsl/drawio.rb +16 -0
  29. data/lib/drawio_dsl/drawio_shapes.rb +22 -16
  30. data/lib/drawio_dsl/formatters/base_formatter.rb +120 -0
  31. data/lib/drawio_dsl/formatters/html_builder.rb +39 -0
  32. data/lib/drawio_dsl/formatters/interface_formatter.rb +13 -1
  33. data/lib/drawio_dsl/formatters/klass_formatter.rb +13 -1
  34. data/lib/drawio_dsl/schema/_.rb +1 -0
  35. data/lib/drawio_dsl/schema/shapes/group.rb +9 -0
  36. data/lib/drawio_dsl/version.rb +1 -1
  37. data/package-lock.json +2 -2
  38. data/package.json +1 -1
  39. metadata +7 -3
  40. data/docs/domain-modal/domain_model_custom.png +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3326464ea6385663c953bce3506bb21fed82b44a0003a08a75ad7649f1ee5bcb
4
- data.tar.gz: a8d0e991fb3f38038b417021d0f16dd42736bc757c9fc92001449650ed9b1fac
3
+ metadata.gz: 9b4e4efff291343bee599d6dffa5bbf0d134f291fe4a796af5a90d677286c5c3
4
+ data.tar.gz: ab995805c3ee1a31fb3df3c6648cf5d0d5df0bca96168d0d59b5c820b51050a4
5
5
  SHA512:
6
- metadata.gz: 25a5e3322839124a32c317f9835b7216554e29e8f31071056d861b2a2f6eb7f96142c34ec45f14b5c478abfdb5539d5ffc5f50db58c6b811e532480582524bf1
7
- data.tar.gz: c318a04c0cad50652fcbcf0d490ed4788cf1e646745df16df587a60f86f157f3e05e3972815f106d4ea02029db03f1eb25974e80b84e727bdc766fb9cf1bc23f
6
+ metadata.gz: f7990da7e2905a18560a953f44fd5843edb23b0081059bedfb430813535310fea8947dcdf51b0257e878535b21cceb94bc29e37624315feba3651edf6c1f59a7
7
+ data.tar.gz: 129dff49839b135244f3a252ec5b8a4e4ccc0870b9a559c51cdfd4e6051910f6502e017d7562619ca0604a1421d23b86d97eef089682eb97da6eadf04a155c94
@@ -451,6 +451,15 @@
451
451
  "h": 120,
452
452
  "style_modifiers": "ellipse"
453
453
  },
454
+ {
455
+ "type": "group",
456
+ "category": "element",
457
+ "x": 0,
458
+ "y": 0,
459
+ "w": 210,
460
+ "h": 210,
461
+ "style_modifiers": "fontSize=20;verticalAlign=top"
462
+ },
454
463
  {
455
464
  "type": "hexagon",
456
465
  "category": "element",
@@ -129,6 +129,7 @@ m = KManager.model :shapes, namespace: %i[domain] do
129
129
  row :diamond , :element, 0, 0, 100, 100, 'rhombus'
130
130
  row :document , :element, 0, 0, 160, 160, 'shape=mxgraph.basic.document'
131
131
  row :ellipse , :element, 0, 0, 200, 120, 'ellipse'
132
+ row :group , :element, 0, 0, 210, 210, 'fontSize=20;verticalAlign=top'
132
133
  row :hexagon , :element, 0, 0, 200, 120, 'shape=hexagon'
133
134
  row :interface , :element, 0, 0, 160, 160, 'align=left;overflow=fill;fontSize=12;fontFamily=Helvetica'
134
135
  row :klass , :element, 0, 0, 160, 160, 'align=left;overflow=fill;fontSize=12;fontFamily=Helvetica'
@@ -459,6 +459,7 @@ KManager.action :domain_model do
459
459
  end
460
460
  .cd(:docs)
461
461
  .save('domain_model.drawio')
462
+ .save_json('domain_model')
462
463
  .export_svg('domain_model', page: 1)
463
464
  end
464
465
  end
@@ -11,9 +11,8 @@ KManager.action :project_plan do
11
11
 
12
12
  grid_layout(y: 90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
13
13
 
14
- todo(title: 'build a domain (class) diagram')
15
- todo(title: 'group box, like a regular box but with a top aligned h1 style title')
16
- todo(title: 'class html builder to support include/extend modules, class methods and regular html nodes such as p, h1.. ul, li')
14
+ todo(title: 'improve coverage')
15
+ todo(title: 'class html builder to support include/extend modules, class methods')
17
16
  todo(title: 'add new shapes related to line connectors')
18
17
  todo(title: 'line connector aliases gives a simple way to use predefined line configurations')
19
18
  todo(title: 'line connectors need to support autolinking using ids')
@@ -27,12 +26,13 @@ KManager.action :project_plan do
27
26
 
28
27
  grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
29
28
 
29
+ todo(title: 'refactor HTML builder to custom GEM or use existing ruby GEM')
30
30
  todo(title: 'add page background to theme, use it whenever the theme is set at a diagram/page level')
31
31
  todo(title: 'move DrawioDsl::Formatters::Factory::FORMATTERS to resource file')
32
32
  todo(title: 'move DrawioDsl::Formatters::StyleBuilder::MAPPINGS to resource file')
33
33
  todo(title: 'settings style attributes need to de-duplicate, might be best to utilize the new StyleBuilder class')
34
34
  todo(title: 'write SVG directly into other projects')
35
- todo(title: 'add :shape, :line and :text to random shape generator')
35
+ todo(title: 'add :shape, :line and :text to random shape generator, note: you can see the issue in the samples/20-styled-shapes.rb where the text is not rendered')
36
36
  todo(title: 'Nodes need to support child nodes')
37
37
  todo(title: 'Grid layout does not position itself in relation to the last element')
38
38
  todo(title: 'Dynamic sized shapes that expand to the size of their text')
@@ -48,6 +48,10 @@ KManager.action :project_plan do
48
48
 
49
49
  grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
50
50
 
51
+ todo(title: 'export_json will output a diagram in machine readable format')
52
+ todo(title: 'class html formatter to support regular html nodes such as p, h1.. ul, li that are found on the builder')
53
+ todo(title: 'group box, like a regular box but with a top aligned h1 style title')
54
+ todo(title: 'build a domain (class) diagram')
51
55
  todo(title: 'build configuration for line strokes %i[dashed dotted dashdot dashdotdot dotdotdot longdash)')
52
56
  todo(title: 'build configuration for line compass %i[n ne e se s sw w nw]')
53
57
  todo(title: 'build configuration for line shape %i[style1 style2 style3 style4]')
@@ -1,4 +1,4 @@
1
- KManager.action :bootstrap do
1
+ KManager.action :styled_shapes do
2
2
  action do
3
3
 
4
4
  DrawioDsl::Drawio
@@ -50,7 +50,7 @@ KManager.action :bootstrap do
50
50
  end
51
51
  end
52
52
  .cd(:spec)
53
- .save('.samples/20-styles.drawio')
53
+ .osave('.samples/20-styled-shapes.drawio')
54
54
  .cd(:docs)
55
55
  .export_svg('samples/styles-plain', page: 1)
56
56
  .export_svg('samples/styles-shadow', page: 2)
@@ -8,20 +8,6 @@ KManager.action :html_shapes do
8
8
  .page('Style-Plain', margin_left: 0, margin_top: 0, rounded: 0, background: '#FFEADB') do
9
9
  grid_layout(wrap_at: 8)
10
10
 
11
- # html = DrawioDsl::Formatters::KlassFormatter.new
12
- # .header('IPerson')
13
- # .field(:first_name, type: :string)
14
- # .field(:last_name, type: :string)
15
- # .field(:age, type: :integer)
16
- # .field(:birthday, type: :date)
17
- # .method(:full_name)
18
- # .method(:sean)
19
- # .as_html
20
-
21
- # square(title: html,
22
- # style_modifiers: 'align=left;overflow=fill;fontSize=12;fontFamily=Helvetica'
23
- # )
24
-
25
11
  interface(theme: :style_07) do
26
12
  format
27
13
  .header('IPerson')
@@ -39,6 +25,42 @@ KManager.action :html_shapes do
39
25
  .field(:birthday, type: :date)
40
26
  .method(:full_name, type: :string)
41
27
  end
28
+
29
+ klass(h: 280) do
30
+ format
31
+ .header('Custom HTML')
32
+ .p('David')
33
+ .b('Cruwys')
34
+ .hr
35
+ .h1('h1')
36
+ .h2('h2')
37
+ .h3('h3')
38
+ .h4('h4')
39
+ .h5('h5')
40
+ .h6('h6')
41
+ .ul_s
42
+ .li('li')
43
+ .li('li')
44
+ .ul_e
45
+ end
46
+
47
+ interface(theme: :style_07, h: 280) do
48
+ format
49
+ .header('ICustom HTML')
50
+ .p('David')
51
+ .b('Cruwys')
52
+ .hr
53
+ .h1('h1')
54
+ .h2('h2')
55
+ .h3('h3')
56
+ .h4('h4')
57
+ .h5('h5')
58
+ .h6('h6')
59
+ .ul_s
60
+ .li('li')
61
+ .li('li')
62
+ .ul_e
63
+ end
42
64
  end
43
65
  .cd(:spec)
44
66
  .osave('.samples/30-html-shapes.drawio')
@@ -24,7 +24,5 @@ KManager.action :bootstrap do
24
24
  end
25
25
  .cd(:spec)
26
26
  .save('.samples/35-ids-and-arrows.drawio')
27
- # .cd(:docs)
28
- # .export_svg('samples/styles-plain', page: 1)
29
27
  end
30
28
  end
@@ -1,3 +1,4 @@
1
1
  {
2
- "liveServer.settings.port": 5501
2
+ "liveServer.settings.port": 5501,
3
+ "simplecov-vscode.enabled": true
3
4
  }
data/CHANGELOG.md CHANGED
@@ -1,3 +1,25 @@
1
+ ## [0.8.7](https://github.com/klueless-io/drawio_dsl/compare/v0.8.6...v0.8.7) (2022-03-20)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * class html formatter to support regular html nodes such as p, h1.. ul, li that are found on the builder ([a414f73](https://github.com/klueless-io/drawio_dsl/commit/a414f73260221a6d1db30620d5ef2d665b44d96c))
7
+ * class html formatter to support regular html nodes such as p, h1.. ul, li that are found on the builder + update cops ([40c945c](https://github.com/klueless-io/drawio_dsl/commit/40c945cc963a80e10267fcca977015d4620b54b0))
8
+
9
+ ## [0.8.6](https://github.com/klueless-io/drawio_dsl/compare/v0.8.5...v0.8.6) (2022-03-20)
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * group box, like a regular box but with a top aligned h1 style title ([282c7e8](https://github.com/klueless-io/drawio_dsl/commit/282c7e8ab8c932082ba9d6914b34767163f1e5e3))
15
+
16
+ ## [0.8.5](https://github.com/klueless-io/drawio_dsl/compare/v0.8.4...v0.8.5) (2022-03-20)
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * build a domain (class) diagram ([673cbba](https://github.com/klueless-io/drawio_dsl/commit/673cbba2e84bac025f43b64f93547d1547dc6d63))
22
+
1
23
  ## [0.8.4](https://github.com/klueless-io/drawio_dsl/compare/v0.8.3...v0.8.4) (2022-03-17)
2
24
 
3
25
 
data/README.md CHANGED
@@ -58,13 +58,6 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
58
58
 
59
59
  You can also run `bin/console` for an interactive prompt that will allow you to experiment.
60
60
 
61
- ```bash
62
- bin/console
63
-
64
- Aaa::Bbb::Program.execute()
65
- # => ""
66
- ```
67
-
68
61
  `drawio_dsl` is setup with Guard, run `guard`, this will watch development file changes and run tests automatically, if successful, it will then run rubocop for style quality.
69
62
 
70
63
  To release a new version, update the version number in `version.rb`, build the gem and push the `.gem` file to [rubygems.org](https://rubygems.org).