drawio_dsl 0.8.9 → 0.9.0
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/.rubocop.yml +1 -0
- data/CHANGELOG.md +21 -0
- data/config/configuration.json +8 -8
- data/docs/domain-modal/domain_model_custom.drawio +2 -2
- data/docs/printspeak-architecture-controllers-custom.drawio +93 -0
- data/docs/printspeak-architecture-controllers-fat.svg +1 -0
- data/docs/printspeak-architecture-controllers-thin.svg +1 -0
- data/docs/printspeak-architecture-controllers.drawio +48 -0
- data/docs/printspeak-architecture-generator.drawio +106 -42
- data/docs/printspeak-architecture-generator.svg +1 -1
- data/docs/project-plan/project.drawio +88 -64
- data/docs/project-plan/project_done.svg +1 -1
- data/docs/project-plan/project_in_progress.svg +1 -1
- data/docs/project-plan/project_todo.svg +1 -1
- data/docs/samples/grid-direction-horizontal.svg +1 -1
- data/docs/samples/grid-direction-vertical.svg +1 -1
- data/lib/drawio_dsl/configuration.rb +81 -0
- data/lib/drawio_dsl/configuration_shapes.rb +2 -2
- data/lib/drawio_dsl/configuration_themes.rb +44 -44
- data/lib/drawio_dsl/dom_builder_shapes.rb +3 -3
- data/lib/drawio_dsl/drawio_shapes.rb +3 -3
- data/lib/drawio_dsl/schema/_.rb +55 -45
- data/lib/drawio_dsl/schema/diagram.rb +1 -1
- data/lib/drawio_dsl/schema/element.rb +23 -0
- data/lib/drawio_dsl/schema/{shapes/face.rb → elements/actor.rb} +2 -2
- data/lib/drawio_dsl/schema/{shapes/actor.rb → elements/actor2.rb} +2 -2
- data/lib/drawio_dsl/schema/{shapes/circle.rb → elements/callout.rb} +2 -2
- data/lib/drawio_dsl/schema/{shapes/callout.rb → elements/callout2.rb} +2 -2
- data/lib/drawio_dsl/schema/elements/callout3.rb +9 -0
- data/lib/drawio_dsl/schema/elements/callout4.rb +9 -0
- data/lib/drawio_dsl/schema/{shapes/cross.rb → elements/circle.rb} +2 -2
- data/lib/drawio_dsl/schema/elements/cloud.rb +9 -0
- data/lib/drawio_dsl/schema/elements/container.rb +9 -0
- data/lib/drawio_dsl/schema/elements/container2.rb +9 -0
- data/lib/drawio_dsl/schema/elements/container3.rb +9 -0
- data/lib/drawio_dsl/schema/elements/container4.rb +9 -0
- data/lib/drawio_dsl/schema/elements/cross.rb +9 -0
- data/lib/drawio_dsl/schema/elements/database.rb +9 -0
- data/lib/drawio_dsl/schema/{shapes/actor2.rb → elements/db_json.rb} +2 -2
- data/lib/drawio_dsl/schema/elements/diamond.rb +9 -0
- data/lib/drawio_dsl/schema/elements/document.rb +9 -0
- data/lib/drawio_dsl/schema/elements/ellipse.rb +9 -0
- data/lib/drawio_dsl/schema/elements/embed_col200.rb +9 -0
- data/lib/drawio_dsl/schema/elements/embed_col50.rb +9 -0
- data/lib/drawio_dsl/schema/{shapes/callout2.rb → elements/embed_row.rb} +2 -2
- data/lib/drawio_dsl/schema/elements/envelop.rb +9 -0
- data/lib/drawio_dsl/schema/elements/face.rb +9 -0
- data/lib/drawio_dsl/schema/elements/group.rb +9 -0
- data/lib/drawio_dsl/schema/elements/hexagon.rb +9 -0
- data/lib/drawio_dsl/schema/elements/interface.rb +9 -0
- data/lib/drawio_dsl/schema/elements/klass.rb +9 -0
- data/lib/drawio_dsl/schema/elements/note.rb +9 -0
- data/lib/drawio_dsl/schema/elements/process.rb +9 -0
- data/lib/drawio_dsl/schema/elements/rectangle.rb +9 -0
- data/lib/drawio_dsl/schema/elements/rectangle2.rb +9 -0
- data/lib/drawio_dsl/schema/{shapes/cloud.rb → elements/square.rb} +2 -2
- data/lib/drawio_dsl/schema/elements/step.rb +9 -0
- data/lib/drawio_dsl/schema/elements/tick.rb +9 -0
- data/lib/drawio_dsl/schema/elements/todo.rb +9 -0
- data/lib/drawio_dsl/schema/elements/triangle.rb +9 -0
- data/lib/drawio_dsl/schema/line.rb +24 -0
- data/lib/drawio_dsl/schema/lines/solid.rb +9 -0
- data/lib/drawio_dsl/schema/page.rb +8 -6
- data/lib/drawio_dsl/schema/{shapes/shape.rb → shape.rb} +14 -22
- data/lib/drawio_dsl/schema/text.rb +23 -0
- data/lib/drawio_dsl/schema/{shapes → texts}/h1.rb +2 -2
- data/lib/drawio_dsl/schema/{shapes → texts}/h2.rb +2 -2
- data/lib/drawio_dsl/schema/{shapes → texts}/h3.rb +2 -2
- data/lib/drawio_dsl/schema/{shapes → texts}/h4.rb +2 -2
- data/lib/drawio_dsl/schema/{shapes → texts}/h5.rb +2 -2
- data/lib/drawio_dsl/schema/{shapes → texts}/h6.rb +2 -2
- data/lib/drawio_dsl/schema/{shapes → texts}/p.rb +2 -2
- data/lib/drawio_dsl/version.rb +1 -1
- data/lib/drawio_dsl.rb +7 -9
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +54 -47
- data/lib/drawio_dsl/schema/shapes/callout3.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/callout4.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/container.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/container2.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/container3.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/container4.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/database.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/db_json.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/diamond.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/document.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/ellipse.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/embed_col200.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/embed_col50.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/embed_row.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/envelop.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/group.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/hexagon.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/interface.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/klass.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/line.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/note.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/process.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/rectangle.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/rectangle2.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/square.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/step.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/tick.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/todo.rb +0 -9
- data/lib/drawio_dsl/schema/shapes/triangle.rb +0 -9
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DrawioDsl
|
4
|
+
module Schema
|
5
|
+
# Text represents lines, usually used for drawing a connection between two elements.
|
6
|
+
class Line < Shape
|
7
|
+
class << self
|
8
|
+
def configure_as(key)
|
9
|
+
configure_shape(key, :line)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
attr_accessor :source
|
14
|
+
attr_accessor :target
|
15
|
+
|
16
|
+
def apply_defaults(args)
|
17
|
+
super(args)
|
18
|
+
|
19
|
+
@source = args[:source]
|
20
|
+
@target = args[:target]
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -79,13 +79,11 @@ module DrawioDsl
|
|
79
79
|
end
|
80
80
|
|
81
81
|
@palette = DrawioDsl::Schema::DefaultPalette.new(self, **args) do |page|
|
82
|
-
theme_palette = KConfig.configuration.drawio.palette(page.theme)
|
83
|
-
|
84
82
|
# Inherit from theme when specific palette options are not specified.
|
85
|
-
@fill_color ||= theme_palette.fill_color
|
86
|
-
@stroke_color ||= theme_palette.stroke_color
|
87
|
-
@font_color ||= theme_palette.
|
88
|
-
@gradient ||= theme_palette.gradient
|
83
|
+
@fill_color ||= page.theme_palette.fill_color
|
84
|
+
@stroke_color ||= page.theme_palette.stroke_color
|
85
|
+
@font_color ||= page.theme_palette.element_font_color
|
86
|
+
@gradient ||= page.theme_palette.gradient
|
89
87
|
end
|
90
88
|
|
91
89
|
@nodes = NodeList.new # []
|
@@ -101,6 +99,10 @@ module DrawioDsl
|
|
101
99
|
node
|
102
100
|
end
|
103
101
|
|
102
|
+
def theme_palette
|
103
|
+
@theme_palette ||= KConfig.configuration.drawio.palette(theme)
|
104
|
+
end
|
105
|
+
|
104
106
|
def as_xml(xml)
|
105
107
|
nodes.as_xml(xml)
|
106
108
|
end
|
@@ -8,22 +8,23 @@ module DrawioDsl
|
|
8
8
|
|
9
9
|
class << self
|
10
10
|
attr_reader :shape_key
|
11
|
+
attr_reader :shape_category
|
11
12
|
attr_reader :shape_defaults
|
12
13
|
|
13
|
-
def configure_shape(key)
|
14
|
-
|
15
|
-
|
14
|
+
def configure_shape(key, category)
|
15
|
+
item_config = KConfig.configuration.drawio.get_item_by_category(key, category)
|
16
|
+
|
17
|
+
if item_config.nil?
|
18
|
+
puts "#{key} not found in configuration for category: #{category}"
|
16
19
|
return
|
17
20
|
end
|
18
21
|
|
19
22
|
@shape_key = key
|
20
|
-
@
|
23
|
+
@shape_category = category
|
24
|
+
@shape_defaults = item_config.clone
|
21
25
|
end
|
22
26
|
end
|
23
27
|
|
24
|
-
configure_shape(:shape)
|
25
|
-
|
26
|
-
attr_accessor :category
|
27
28
|
attr_accessor :theme
|
28
29
|
attr_accessor :title
|
29
30
|
attr_accessor :value
|
@@ -47,9 +48,6 @@ module DrawioDsl
|
|
47
48
|
attr_accessor :h
|
48
49
|
attr_accessor :style_modifiers
|
49
50
|
|
50
|
-
attr_accessor :source
|
51
|
-
attr_accessor :target
|
52
|
-
|
53
51
|
def initialize(page, **args, &block)
|
54
52
|
args[:classification] = :shape
|
55
53
|
super(page, **args)
|
@@ -68,7 +66,6 @@ module DrawioDsl
|
|
68
66
|
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
69
67
|
def apply_defaults(args)
|
70
68
|
@theme = args[:theme] || page.theme # KConfig.configuration.drawio.themes.sample
|
71
|
-
theme_palette = KConfig.configuration.drawio.palette(theme)
|
72
69
|
@title = args[:title] || ''
|
73
70
|
|
74
71
|
@white_space = args[:white_space] || page.style.white_space # wrap or nil
|
@@ -79,20 +76,11 @@ module DrawioDsl
|
|
79
76
|
@glass = args[:glass] || page.style.glass
|
80
77
|
|
81
78
|
@type = args[:type] || shape_defaults.type
|
82
|
-
@category = args[:category] || shape_defaults.category
|
83
79
|
@x = args[:x] || shape_defaults.x
|
84
80
|
@y = args[:y] || shape_defaults.y
|
85
81
|
@w = args[:w] || shape_defaults.w
|
86
82
|
@h = args[:h] || shape_defaults.h
|
87
83
|
@style_modifiers = args[:style_modifiers] || shape_defaults.style_modifiers
|
88
|
-
|
89
|
-
@source = args[:source]
|
90
|
-
@target = args[:target]
|
91
|
-
|
92
|
-
@fill_color = args[:fill_color] || (category == :text ? nil : theme_palette.fill_color)
|
93
|
-
@stroke_color = args[:stroke_color] || (category == :text ? nil : theme_palette.stroke_color)
|
94
|
-
@gradient = args[:gradient] || (category == :text ? nil : theme_palette.gradient)
|
95
|
-
@font_color = args[:font_color] || theme_palette.font_color
|
96
84
|
end
|
97
85
|
|
98
86
|
def format(type = nil)
|
@@ -121,8 +109,8 @@ module DrawioDsl
|
|
121
109
|
def as_xml(xml)
|
122
110
|
# log.error category
|
123
111
|
# log.error type
|
124
|
-
draw_element(xml) if
|
125
|
-
draw_line(xml) if
|
112
|
+
draw_element(xml) if is_a?(Element) || is_a?(Text)
|
113
|
+
draw_line(xml) if is_a?(Line)
|
126
114
|
end
|
127
115
|
|
128
116
|
def draw_element(xml)
|
@@ -153,6 +141,10 @@ module DrawioDsl
|
|
153
141
|
result
|
154
142
|
end
|
155
143
|
|
144
|
+
def theme_palette
|
145
|
+
@theme_palette ||= KConfig.configuration.drawio.palette(theme)
|
146
|
+
end
|
147
|
+
|
156
148
|
# :nocov:
|
157
149
|
def debug(format: :detail)
|
158
150
|
if format == :detail
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DrawioDsl
|
4
|
+
module Schema
|
5
|
+
# Text represents text shapes such as h1, h2, p, etc.
|
6
|
+
class Text < Shape
|
7
|
+
class << self
|
8
|
+
def configure_as(key)
|
9
|
+
configure_shape(key, :text)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def apply_defaults(args)
|
14
|
+
super(args)
|
15
|
+
|
16
|
+
@fill_color = args[:fill_color]
|
17
|
+
@stroke_color = args[:stroke_color]
|
18
|
+
@gradient = args[:gradient]
|
19
|
+
@font_color = args[:font_color] || theme_palette.text_font_color
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/drawio_dsl/version.rb
CHANGED
data/lib/drawio_dsl.rb
CHANGED
@@ -7,6 +7,13 @@ require 'k_config'
|
|
7
7
|
require 'k_log'
|
8
8
|
require 'k_director'
|
9
9
|
|
10
|
+
module DrawioDsl
|
11
|
+
# raise DrawioDsl::Error, 'Sample message'
|
12
|
+
Error = Class.new(StandardError)
|
13
|
+
|
14
|
+
ROOT_PATH = File.expand_path('..', __dir__)
|
15
|
+
end
|
16
|
+
|
10
17
|
require_relative 'drawio_dsl/configuration_extension'
|
11
18
|
require_relative 'drawio_dsl/configuration_shapes'
|
12
19
|
require_relative 'drawio_dsl/configuration_themes'
|
@@ -24,15 +31,6 @@ require_relative 'drawio_dsl/drawio_extensions'
|
|
24
31
|
require_relative 'drawio_dsl/drawio_page'
|
25
32
|
require_relative 'drawio_dsl/drawio'
|
26
33
|
|
27
|
-
module DrawioDsl
|
28
|
-
# raise DrawioDsl::Error, 'Sample message'
|
29
|
-
Error = Class.new(StandardError)
|
30
|
-
|
31
|
-
ROOT_PATH = File.expand_path('..', __dir__)
|
32
|
-
|
33
|
-
# Your code goes here...
|
34
|
-
end
|
35
|
-
|
36
34
|
if ENV['KLUE_DEBUG']&.to_s&.downcase == 'true'
|
37
35
|
namespace = 'DrawioDsl::Version'
|
38
36
|
file_path = $LOADED_FEATURES.find { |f| f.include?('drawio_dsl/version') }
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "drawio_dsl",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.9.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.9.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",
|