drawio_dsl 0.10.1 → 0.11.2

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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/config/configuration.json +843 -647
  4. data/docs/printspeak-architecture-controllers.drawio +47 -47
  5. data/docs/printspeak-architecture-generator-custom.drawio +306 -0
  6. data/docs/printspeak-architecture-generator-custom.png +0 -0
  7. data/docs/project-plan/project.drawio +98 -74
  8. data/docs/project-plan/project_done.svg +1 -1
  9. data/docs/project-plan/project_in_progress.svg +1 -1
  10. data/docs/project-plan/project_todo.svg +1 -1
  11. data/docs/samples/grid-direction-horizontal.svg +1 -1
  12. data/docs/samples/grid-direction-vertical.svg +1 -1
  13. data/docs/samples/styles-glass.svg +1 -1
  14. data/docs/samples/styles-plain.svg +1 -1
  15. data/docs/samples/styles-rounded.svg +1 -1
  16. data/docs/samples/styles-shadow.svg +1 -1
  17. data/docs/samples/styles-sketch.svg +1 -1
  18. data/docs/samples/themes-random.svg +1 -1
  19. data/docs/samples/willoughby-council.svg +1 -1
  20. data/lib/drawio_dsl/configuration.rb +181 -108
  21. data/lib/drawio_dsl/dom_builder.rb +2 -2
  22. data/lib/drawio_dsl/schema/diagram.rb +1 -1
  23. data/lib/drawio_dsl/schema/element.rb +4 -0
  24. data/lib/drawio_dsl/schema/layouts/flex_layout.rb +1 -1
  25. data/lib/drawio_dsl/schema/layouts/grid_layout.rb +1 -1
  26. data/lib/drawio_dsl/schema/line.rb +9 -2
  27. data/lib/drawio_dsl/schema/node.rb +5 -5
  28. data/lib/drawio_dsl/schema/shape.rb +9 -9
  29. data/lib/drawio_dsl/schema/text.rb +4 -0
  30. data/lib/drawio_dsl/version.rb +1 -1
  31. data/lib/drawio_dsl.rb +1 -2
  32. data/package-lock.json +2 -2
  33. data/package.json +1 -1
  34. metadata +4 -4
  35. data/docs/printspeak-architecture-generator.drawio +0 -107
  36. data/lib/drawio_dsl/configuration_shapes.rb +0 -109
@@ -4,28 +4,22 @@
4
4
  module DrawioDsl
5
5
  # Configuration container for the DrawIO DSL
6
6
  class Configuration
7
- include DrawioDsl::ConfigurationShapes
7
+ extend Forwardable
8
8
 
9
9
  include KLog::Logging
10
10
 
11
11
  BaseStyle = Struct.new(:white_space, :html, :rounded, :shadow, :sketch, :glass, keyword_init: true)
12
- ElementConfig = Struct.new(:type, :x, :y, :w, :h, :style_modifiers, keyword_init: true)
13
- LineConfig = Struct.new(:type, :x, :y, :w, :h, :style_modifiers, keyword_init: true)
14
- TextConfig = Struct.new(:type, :x, :y, :w, :h, :style_modifiers, keyword_init: true)
15
12
 
16
13
  attr_accessor :base_style
17
14
 
18
- attr_accessor :shapes
15
+ def_delegators :shape, :element, :line, :text
19
16
 
20
17
  def initialize
21
18
  @base_style = BaseStyle.new(white_space: :wrap, html: 1, rounded: nil, shadow: nil, sketch: nil, glass: nil)
22
-
23
- # TODO: these need to be removed
24
- add_shapes
25
19
  end
26
20
 
27
- def stroke(type)
28
- strokes[type] || ''
21
+ def stroke(key)
22
+ strokes[key] || ''
29
23
  end
30
24
 
31
25
  def strokes
@@ -33,104 +27,183 @@ module DrawioDsl
33
27
 
34
28
  @strokes = {}
35
29
  source_config['strokes'].each do |stroke|
36
- @strokes[stroke['type'].to_sym] = stroke['style']
30
+ @strokes[stroke['key'].to_sym] = stroke['style']
37
31
  end
38
32
 
39
33
  @strokes
40
34
  end
41
35
 
42
36
  # need test
43
- def get_item_by_category(type, category)
37
+ def get_item_by_category(key, category)
44
38
  case category
45
39
  when :text
46
- text(type)
40
+ text(key)
47
41
  when :line
48
- line(type)
42
+ line(key)
49
43
  else
50
- element(type)
44
+ element(key)
51
45
  end
52
46
  end
53
47
 
54
- def element(type)
55
- elements[type]
48
+ def shape
49
+ @shape ||= Shape.new(source_config['shape'])
56
50
  end
57
51
 
58
- def elements
59
- return @elements if defined? @elements
60
-
61
- @elements = {}
62
- source_config['shapes'].select { |shape| shape['category'] == 'element' }.each do |element|
63
- @elements[element['type'].to_sym] = ElementConfig.new(
64
- type: element['type'].to_sym,
65
- x: element['x'].to_i,
66
- y: element['y'].to_i,
67
- w: element['w'].to_i,
68
- h: element['h'].to_i,
69
- style_modifiers: element['style_modifiers']
70
- )
71
- end
52
+ def connector
53
+ @connector ||= Connector.new(source_config['connector'])
54
+ end
72
55
 
73
- @elements
56
+ def theme
57
+ @theme ||= Theme.new(source_config['theme'])
74
58
  end
75
59
 
76
- def line(type)
77
- lines[type]
60
+ def source_config
61
+ return @source_config if defined? @source_config
62
+
63
+ @source_config = begin
64
+ file = File.join(DrawioDsl::ROOT_PATH, 'config/configuration.json')
65
+ JSON.parse(File.read(file))
66
+ end
78
67
  end
79
68
 
80
- def lines
81
- return @lines if defined? @lines
82
-
83
- @lines = {}
84
- source_config['shapes'].select { |shape| shape['category'] == 'line' }.each do |line|
85
- @lines[line['type'].to_sym] = LineConfig.new(
86
- type: line['type'].to_sym,
87
- x: line['x'].to_i,
88
- y: line['y'].to_i,
89
- w: line['w'].to_i,
90
- h: line['h'].to_i,
91
- style_modifiers: line['style_modifiers']
69
+ class Shape
70
+ attr_reader :source_config
71
+
72
+ ElementShapeConfig = Struct.new(:key, :x, :y, :w, :h, :style_modifiers, keyword_init: true)
73
+ LineShapeConfig = Struct.new(:key, :x, :y, :w, :h, :style_modifiers, keyword_init: true)
74
+ TextShapeConfig = Struct.new(:key, :x, :y, :w, :h, :style_modifiers, keyword_init: true)
75
+
76
+ def initialize(source_config)
77
+ @source_config = source_config
78
+ end
79
+
80
+ # Elements
81
+
82
+ def element(key)
83
+ elements[key] || default_element
84
+ end
85
+
86
+ def elements
87
+ return @elements if defined? @elements
88
+
89
+ @elements = {}
90
+ source_config['elements'].each do |element|
91
+ @elements[element['key'].to_sym] = ElementShapeConfig.new(
92
+ key: element['key'].to_sym,
93
+ x: element['x'].to_i,
94
+ y: element['y'].to_i,
95
+ w: element['w'].to_i,
96
+ h: element['h'].to_i,
97
+ style_modifiers: element['style_modifiers']
98
+ )
99
+ end
100
+
101
+ @elements
102
+ end
103
+
104
+ def default_element
105
+ @default_element ||= ElementShapeConfig.new(
106
+ key: :square,
107
+ x: 0,
108
+ y: 0,
109
+ w: 160,
110
+ h: 160,
111
+ style_modifiers: ''
92
112
  )
93
113
  end
94
114
 
95
- @lines
96
- end
115
+ def element_keys
116
+ elements.keys
117
+ end
97
118
 
98
- def text(type)
99
- texts[type]
100
- end
119
+ def random_element_key
120
+ elements.values.sample.key
121
+ end
122
+
123
+ # Lines
124
+
125
+ def line(key)
126
+ lines[key] || default_line
127
+ end
101
128
 
102
- def texts
103
- return @texts if defined? @texts
104
-
105
- @texts = {}
106
- source_config['shapes'].select { |shape| shape['category'] == 'text' }.each do |text|
107
- @texts[text['type'].to_sym] = TextConfig.new(
108
- type: text['type'].to_sym,
109
- x: text['x'].to_i,
110
- y: text['y'].to_i,
111
- w: text['w'].to_i,
112
- h: text['h'].to_i,
113
- style_modifiers: text['style_modifiers']
129
+ def lines
130
+ return @lines if defined? @lines
131
+
132
+ @lines = {}
133
+ source_config['lines'].each do |line|
134
+ @lines[line['key'].to_sym] = LineShapeConfig.new(
135
+ key: line['key'].to_sym,
136
+ x: line['x'].to_i,
137
+ y: line['y'].to_i,
138
+ w: line['w'].to_i,
139
+ h: line['h'].to_i,
140
+ style_modifiers: line['style_modifiers']
141
+ )
142
+ end
143
+
144
+ @lines
145
+ end
146
+
147
+ def default_line
148
+ @default_line ||= LineShapeConfig.new(
149
+ key: :solid,
150
+ x: 0,
151
+ y: 0,
152
+ w: 50,
153
+ h: 50,
154
+ style_modifiers: 'edgeStyle=none;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0'
114
155
  )
115
156
  end
116
157
 
117
- @texts
118
- end
158
+ def line_keys
159
+ lines.keys
160
+ end
119
161
 
120
- def connector
121
- @connector ||= Connector.new(source_config['connector'])
122
- end
162
+ def random_line_key
163
+ lines.values.sample.key
164
+ end
123
165
 
124
- def theme
125
- @theme ||= Theme.new(source_config['theme'])
126
- end
166
+ def text(key)
167
+ texts[key] || default_text
168
+ end
127
169
 
128
- def source_config
129
- return @source_config if defined? @source_config
170
+ # Texts
130
171
 
131
- @source_config = begin
132
- file = File.join(DrawioDsl::ROOT_PATH, 'config/configuration.json')
133
- JSON.parse(File.read(file))
172
+ def texts
173
+ return @texts if defined? @texts
174
+
175
+ @texts = {}
176
+ source_config['texts'].each do |text|
177
+ @texts[text['key'].to_sym] = TextShapeConfig.new(
178
+ key: text['key'].to_sym,
179
+ x: text['x'].to_i,
180
+ y: text['y'].to_i,
181
+ w: text['w'].to_i,
182
+ h: text['h'].to_i,
183
+ style_modifiers: text['style_modifiers']
184
+ )
185
+ end
186
+
187
+ @texts
188
+ end
189
+
190
+ def default_text
191
+ @default_line ||= TextShapeConfig.new(
192
+ key: :p,
193
+ x: 0,
194
+ y: 0,
195
+ w: 100,
196
+ h: 50,
197
+ style_modifiers: 'text;fontSize=16;fontStyle=1;fillColor=none'
198
+ )
199
+ end
200
+
201
+ def text_keys
202
+ texts.keys
203
+ end
204
+
205
+ def random_text_key
206
+ texts.values.sample.key
134
207
  end
135
208
  end
136
209
 
@@ -144,8 +217,8 @@ module DrawioDsl
144
217
  @source_config = source_config
145
218
  end
146
219
 
147
- def compass_point(type)
148
- compass_points[type] || XyConfig.new(x: 0, y: 0)
220
+ def compass_point(key)
221
+ compass_points[key] || XyConfig.new(x: 0, y: 0)
149
222
  end
150
223
 
151
224
  def compass_points
@@ -153,14 +226,14 @@ module DrawioDsl
153
226
 
154
227
  @compass_points = {}
155
228
  source_config['compass_points'].each do |compass_point|
156
- @compass_points[compass_point['type'].to_sym] = XyConfig.new(x: compass_point['x'], y: compass_point['y'])
229
+ @compass_points[compass_point['key'].to_sym] = XyConfig.new(x: compass_point['x'], y: compass_point['y'])
157
230
  end
158
231
 
159
232
  @compass_points
160
233
  end
161
234
 
162
- def waypoint(type)
163
- waypoints[type] || ''
235
+ def waypoint(key)
236
+ waypoints[key] || ''
164
237
  end
165
238
 
166
239
  def waypoints
@@ -168,14 +241,14 @@ module DrawioDsl
168
241
 
169
242
  @waypoints = {}
170
243
  source_config['waypoints'].each do |waypoint|
171
- @waypoints[waypoint['type'].to_sym] = waypoint['style']
244
+ @waypoints[waypoint['key'].to_sym] = waypoint['style']
172
245
  end
173
246
 
174
247
  @waypoints
175
248
  end
176
249
 
177
- def arrow(type)
178
- arrows[type] || 'open'
250
+ def arrow(key)
251
+ arrows[key] || 'open'
179
252
  end
180
253
 
181
254
  def arrows
@@ -183,14 +256,14 @@ module DrawioDsl
183
256
 
184
257
  @arrows = {}
185
258
  source_config['arrows'].each do |arrow|
186
- @arrows[arrow['type'].to_sym] = arrow['style']
259
+ @arrows[arrow['key'].to_sym] = arrow['style']
187
260
  end
188
261
 
189
262
  @arrows
190
263
  end
191
264
 
192
- def design(type)
193
- designs[type] || ''
265
+ def design(key)
266
+ designs[key] || ''
194
267
  end
195
268
 
196
269
  def designs
@@ -198,7 +271,7 @@ module DrawioDsl
198
271
 
199
272
  @designs = {}
200
273
  source_config['designs'].each do |design|
201
- @designs[design['type'].to_sym] = design['style']
274
+ @designs[design['key'].to_sym] = design['style']
202
275
  end
203
276
 
204
277
  @designs
@@ -208,16 +281,16 @@ module DrawioDsl
208
281
  class Theme
209
282
  attr_reader :source_config
210
283
 
211
- BackgroundThemeConfig = Struct.new(:type, :bg_color, :font_color, :favourite, keyword_init: true)
212
- ElementThemeConfig = Struct.new(:type, :fill_color, :stroke_color, :font_color, :gradient, keyword_init: true)
284
+ BackgroundThemeConfig = Struct.new(:key, :bg_color, :font_color, :favourite, keyword_init: true)
285
+ ElementThemeConfig = Struct.new(:key, :fill_color, :stroke_color, :font_color, :gradient, keyword_init: true)
213
286
 
214
287
  def initialize(source_config)
215
288
  @source_config = source_config
216
289
  end
217
290
 
218
- def background(type)
219
- backgrounds[type] || BackgroundThemeConfig.new(
220
- type: type,
291
+ def background(key)
292
+ backgrounds[key] || BackgroundThemeConfig.new(
293
+ key: key,
221
294
  bg_color: '#000000',
222
295
  font_color: '#FFFFFF',
223
296
  favourite: false
@@ -229,8 +302,8 @@ module DrawioDsl
229
302
 
230
303
  @backgrounds = {}
231
304
  source_config['backgrounds'].each do |background|
232
- @backgrounds[background['type'].to_sym] = BackgroundThemeConfig.new(
233
- type: background['type'].to_sym,
305
+ @backgrounds[background['key'].to_sym] = BackgroundThemeConfig.new(
306
+ key: background['key'].to_sym,
234
307
  bg_color: background['bg_color'],
235
308
  font_color: background['font_color'],
236
309
  favourite: background['favourite'] == 1
@@ -240,21 +313,21 @@ module DrawioDsl
240
313
  @backgrounds
241
314
  end
242
315
 
243
- def background_types
316
+ def background_keys
244
317
  backgrounds.keys
245
318
  end
246
319
 
247
- def favourite_background_types
248
- backgrounds.values.select(&:favourite).map(&:type)
320
+ def favourite_background_keys
321
+ backgrounds.values.select(&:favourite).map(&:key)
249
322
  end
250
323
 
251
- def random_background_type
252
- backgrounds.values.sample.type
324
+ def random_background_key
325
+ backgrounds.values.sample.key
253
326
  end
254
327
 
255
- def element(type)
256
- elements[type] || ElementThemeConfig.new(
257
- type: type,
328
+ def element(key)
329
+ elements[key] || ElementThemeConfig.new(
330
+ key: key,
258
331
  fill_color: '#ffffff',
259
332
  stroke_color: '#000000',
260
333
  font_color: '#000000',
@@ -267,8 +340,8 @@ module DrawioDsl
267
340
 
268
341
  @elements = {}
269
342
  source_config['elements'].each do |element|
270
- @elements[element['type'].to_sym] = ElementThemeConfig.new(
271
- type: element['type'].to_sym,
343
+ @elements[element['key'].to_sym] = ElementThemeConfig.new(
344
+ key: element['key'].to_sym,
272
345
  fill_color: element['fill_color'],
273
346
  stroke_color: element['stroke_color'],
274
347
  font_color: element['font_color'],
@@ -279,12 +352,12 @@ module DrawioDsl
279
352
  @elements
280
353
  end
281
354
 
282
- def element_types
355
+ def element_keys
283
356
  elements.keys
284
357
  end
285
358
 
286
- def random_element_type
287
- elements.values.sample.type
359
+ def random_element_key
360
+ elements.values.sample.key
288
361
  end
289
362
  end
290
363
  end
@@ -47,8 +47,8 @@ module DrawioDsl
47
47
  current_page.id = SecureRandom.alphanumeric(3) unless current_page.id
48
48
 
49
49
  # add anchor nodes
50
- page_anchor = DrawioDsl::Schema::Anchor.new(self, id: "page_root_#{current_page.id}", type: :page_root)
51
- node_anchor = DrawioDsl::Schema::Anchor.new(self, id: "node_root_#{current_page.id}", type: :node_root)
50
+ page_anchor = DrawioDsl::Schema::Anchor.new(self, id: "page_root_#{current_page.id}", key: :page_root)
51
+ node_anchor = DrawioDsl::Schema::Anchor.new(self, id: "node_root_#{current_page.id}", key: :node_root)
52
52
  page_anchor.add_node(node_anchor)
53
53
 
54
54
  @focus_node = node_anchor
@@ -15,7 +15,7 @@ module DrawioDsl
15
15
  def initialize(**args)
16
16
  @host = args[:host] || SecureRandom.alphanumeric(3)
17
17
  # TODO: assess and resolve this inconsistency
18
- @theme = args[:theme] || KConfig.configuration.drawio.theme.random_background_type
18
+ @theme = args[:theme] || KConfig.configuration.drawio.theme.random_background_key
19
19
  @bg_theme = args[:bg_theme] || :not_set
20
20
 
21
21
  @style = DrawioDsl::Schema::CommonStyle.new(**args) do
@@ -18,6 +18,10 @@ module DrawioDsl
18
18
  @gradient = args[:gradient] || theme_palette.gradient
19
19
  @font_color = args[:font_color] || theme_palette.font_color
20
20
  end
21
+
22
+ def default_configuration
23
+ KConfig.configuration.drawio.shape.default_element
24
+ end
21
25
  end
22
26
  end
23
27
  end
@@ -15,7 +15,7 @@ module DrawioDsl
15
15
  @gap = args[:gap] || 20
16
16
  @perpendicular_max = 0
17
17
 
18
- super(page, **args.merge(type: :flex_layout))
18
+ super(page, **args.merge(key: :flex_layout))
19
19
  end
20
20
 
21
21
  def position_shape(shape)
@@ -24,7 +24,7 @@ module DrawioDsl
24
24
  @v_align = args[:v_align] || :center
25
25
  @cell_no = 1
26
26
 
27
- super(page, **args.merge(type: :grid_layout))
27
+ super(page, **args.merge(key: :grid_layout))
28
28
  end
29
29
  # rubocop:enable Metrics/CyclomaticComplexity
30
30
 
@@ -16,8 +16,15 @@ module DrawioDsl
16
16
  def apply_defaults(args)
17
17
  super(args)
18
18
 
19
- @source = args[:source]
20
- @target = args[:target]
19
+ @source = args[:source]
20
+ @target = args[:target]
21
+
22
+ @fill_color = args[:fill_color] || theme_palette.fill_color
23
+ @stroke_color = args[:stroke_color] || theme_palette.stroke_color
24
+ end
25
+
26
+ def default_configuration
27
+ KConfig.configuration.drawio.shape.default_line
21
28
  end
22
29
  end
23
30
  end
@@ -9,7 +9,7 @@ module DrawioDsl
9
9
  attr_accessor :page
10
10
  attr_accessor :parent
11
11
  attr_accessor :classification
12
- attr_accessor :type
12
+ attr_accessor :key
13
13
  attr_accessor :nodes
14
14
 
15
15
  def initialize(page, **args)
@@ -17,7 +17,7 @@ module DrawioDsl
17
17
  @id = args[:id]
18
18
  @parent = args[:parent]
19
19
  @classification = args[:classification] || :unknown
20
- @type = args[:type] || :unknown
20
+ @key = args[:key] || :unknown
21
21
  @nodes = NodeList.new
22
22
  end
23
23
 
@@ -26,7 +26,7 @@ module DrawioDsl
26
26
  id: id,
27
27
  parent_id: parent&.id,
28
28
  classification: classification,
29
- type: type
29
+ key: key
30
30
  }
31
31
  result[:nodes] = nodes.to_h if nodes.any?
32
32
  result
@@ -58,11 +58,11 @@ module DrawioDsl
58
58
  end
59
59
 
60
60
  # rubocop:disable Metrics/ParameterLists
61
- def debug_row(classification, id, type = nil, x = nil, y = nil, width = nil, height = nil)
61
+ def debug_row(classification, id, key = nil, x = nil, y = nil, width = nil, height = nil)
62
62
  row = []
63
63
  row << classification.to_s.ljust(11)
64
64
  row << id.to_s.ljust(6)
65
- row << (type.nil? ? '' : type).to_s.ljust(15)
65
+ row << (key.nil? ? '' : key).to_s.ljust(15)
66
66
  row << (x.nil? ? '' : x).to_s.rjust(5)
67
67
  row << (y.nil? ? '' : y).to_s.rjust(5)
68
68
  row << (width.nil? ? '' : width).to_s.rjust(5)
@@ -60,7 +60,7 @@ module DrawioDsl
60
60
  end
61
61
 
62
62
  def shape_defaults
63
- @shape_defaults ||= self.class.shape_defaults.clone
63
+ @shape_defaults ||= self.class.shape_defaults || default_configuration
64
64
  end
65
65
 
66
66
  # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
@@ -75,7 +75,7 @@ module DrawioDsl
75
75
  @sketch = args[:sketch] || page.style.sketch
76
76
  @glass = args[:glass] || page.style.glass
77
77
 
78
- @type = args[:type] || shape_defaults.type
78
+ @key = args[:key] || shape_defaults.key
79
79
  @x = args[:x] || shape_defaults.x
80
80
  @y = args[:y] || shape_defaults.y
81
81
  @w = args[:w] || shape_defaults.w
@@ -83,9 +83,9 @@ module DrawioDsl
83
83
  @style_modifiers = args[:style_modifiers] || shape_defaults.style_modifiers
84
84
  end
85
85
 
86
- def format(type = nil)
87
- type ||= self.class.shape_key
88
- format_instance(type)
86
+ def format(key = nil)
87
+ key ||= self.class.shape_key
88
+ format_instance(key)
89
89
  end
90
90
 
91
91
  def style
@@ -108,7 +108,7 @@ module DrawioDsl
108
108
 
109
109
  def as_xml(xml)
110
110
  # log.error category
111
- # log.error type
111
+ # log.error key
112
112
  draw_element(xml) if is_a?(Element) || is_a?(Text)
113
113
  draw_line(xml) if is_a?(Line)
114
114
  end
@@ -130,7 +130,7 @@ module DrawioDsl
130
130
  id: id,
131
131
  parent_id: parent&.id,
132
132
  classification: classification,
133
- type: type,
133
+ key: key,
134
134
  x: x,
135
135
  y: y,
136
136
  w: w,
@@ -153,9 +153,9 @@ module DrawioDsl
153
153
  # :nocov:
154
154
  def debug(format: :detail)
155
155
  if format == :detail
156
- debug_detail({ id: id, classification: classification, type: type })
156
+ debug_detail({ id: id, classification: classification, key: key })
157
157
  else
158
- debug_row(classification, id, type, x, y, w, h)
158
+ debug_row(classification, id, key, x, y, w, h)
159
159
  end
160
160
  end
161
161
  # :nocov:
@@ -18,6 +18,10 @@ module DrawioDsl
18
18
  @gradient = args[:gradient]
19
19
  @font_color = args[:font_color] || page.bg_theme_palette.font_color
20
20
  end
21
+
22
+ def default_configuration
23
+ KConfig.configuration.drawio.shape.default_text
24
+ end
21
25
  end
22
26
  end
23
27
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DrawioDsl
4
- VERSION = '0.10.1'
4
+ VERSION = '0.11.2'
5
5
  end
data/lib/drawio_dsl.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'securerandom'
4
4
  require 'nokogiri'
5
-
5
+ require 'forwardable'
6
6
  require 'k_config'
7
7
  require 'k_log'
8
8
  require 'k_director'
@@ -15,7 +15,6 @@ module DrawioDsl
15
15
  end
16
16
 
17
17
  require_relative 'drawio_dsl/configuration_extension'
18
- require_relative 'drawio_dsl/configuration_shapes'
19
18
  require_relative 'drawio_dsl/configuration'
20
19
  require_relative 'drawio_dsl/version'
21
20
  require_relative 'drawio_dsl/formatters/_'
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "drawio_dsl",
3
- "version": "0.10.1",
3
+ "version": "0.11.2",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "drawio_dsl",
9
- "version": "0.10.1",
9
+ "version": "0.11.2",
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.10.1",
3
+ "version": "0.11.2",
4
4
  "description": "DrawIO DSL can build DrawIO diagrams using a Domain Specific Language",
5
5
  "scripts": {
6
6
  "release": "semantic-release"