drawio_dsl 0.8.9 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- 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",
|