drawio_dsl 0.5.6 → 0.7.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.
Files changed (215) hide show
  1. checksums.yaml +4 -4
  2. data/.builders/.data/shapes.json +44 -26
  3. data/.builders/.templates/basic/dom_builder_shapes.rb +2 -2
  4. data/.builders/.templates/basic/drawio_extensions.rb +57 -0
  5. data/.builders/.templates/basic/drawio_shapes.rb +2 -2
  6. data/.builders/.templates/basic/schema_require.rb +3 -1
  7. data/.builders/blueprint/shapes.rb +9 -5
  8. data/.builders/generators/10-transform-drawio-js.rb +195 -0
  9. data/.builders/generators/20-drawio-extensions.rb +41 -0
  10. data/.builders/generators/project_plans/drawio_dsl.rb +11 -5
  11. data/.builders/generators/project_plans/k_doc.rb +39 -0
  12. data/.builders/generators/sample_diagrams/15-grid-direction.rb +0 -8
  13. data/.builders/generators/sample_diagrams/20-styles.rb +1 -2
  14. data/.builders/generators/sample_diagrams/30-html-shapes.rb +68 -0
  15. data/.rubocop.yml +4 -1
  16. data/CHANGELOG.md +27 -0
  17. data/docs/extensions/analyti_cs.svg +3 -0
  18. data/docs/extensions/android_inputs.svg +3 -0
  19. data/docs/extensions/app_services.svg +3 -0
  20. data/docs/extensions/appliances.svg +3 -0
  21. data/docs/extensions/arrows.svg +3 -0
  22. data/docs/extensions/aws_17___analyti_cs.svg +3 -0
  23. data/docs/extensions/aws_17___application_services.svg +3 -0
  24. data/docs/extensions/aws_17___artificial_intelligence.svg +3 -0
  25. data/docs/extensions/aws_17___business_productivity.svg +3 -0
  26. data/docs/extensions/aws_17___compute.svg +3 -0
  27. data/docs/extensions/aws_17___contact_center.svg +3 -0
  28. data/docs/extensions/aws_17___containers.svg +3 -0
  29. data/docs/extensions/aws_17___database.svg +3 -0
  30. data/docs/extensions/aws_17___desktop_app_straning.svg +3 -0
  31. data/docs/extensions/aws_17___developer_tools.svg +3 -0
  32. data/docs/extensions/aws_17___game_development.svg +3 -0
  33. data/docs/extensions/aws_17___general.svg +3 -0
  34. data/docs/extensions/aws_17___io_t.svg +3 -0
  35. data/docs/extensions/aws_17___management.svg +3 -0
  36. data/docs/extensions/aws_17___messaging.svg +3 -0
  37. data/docs/extensions/aws_17___migration.svg +3 -0
  38. data/docs/extensions/aws_17___mobile_services.svg +3 -0
  39. data/docs/extensions/aws_17___networking_content_delivery.svg +3 -0
  40. data/docs/extensions/aws_17___on_demand_workforce.svg +3 -0
  41. data/docs/extensions/aws_17___sdks.svg +3 -0
  42. data/docs/extensions/aws_17___serurity_identity_and_compliance.svg +3 -0
  43. data/docs/extensions/aws_17___storage.svg +3 -0
  44. data/docs/extensions/aws_19___application_integration.svg +3 -0
  45. data/docs/extensions/aws_19___ar_vr.svg +3 -0
  46. data/docs/extensions/aws_19___blockchain.svg +3 -0
  47. data/docs/extensions/aws_19___business_applications.svg +3 -0
  48. data/docs/extensions/aws_19___compute.svg +3 -0
  49. data/docs/extensions/aws_19___cost_management.svg +3 -0
  50. data/docs/extensions/aws_19___customer_engagement.svg +3 -0
  51. data/docs/extensions/aws_19___database.svg +3 -0
  52. data/docs/extensions/aws_19___desktop_app_streaming.svg +3 -0
  53. data/docs/extensions/aws_19___developer_tools.svg +3 -0
  54. data/docs/extensions/aws_19___ec2_instance_types.svg +3 -0
  55. data/docs/extensions/aws_19___game_tech.svg +3 -0
  56. data/docs/extensions/aws_19___general.svg +3 -0
  57. data/docs/extensions/aws_19___groups_note_repeated_below_without_v2.svg +3 -0
  58. data/docs/extensions/aws_19___internet_of_things.svg +3 -0
  59. data/docs/extensions/aws_19___machine_learning.svg +3 -0
  60. data/docs/extensions/aws_19___management_governance.svg +3 -0
  61. data/docs/extensions/aws_19___media_services.svg +3 -0
  62. data/docs/extensions/aws_19___migration_transfer.svg +3 -0
  63. data/docs/extensions/aws_19___mobile.svg +3 -0
  64. data/docs/extensions/aws_19___networking_content_delivery.svg +3 -0
  65. data/docs/extensions/aws_19___roboti_cs.svg +3 -0
  66. data/docs/extensions/aws_19___satellite.svg +3 -0
  67. data/docs/extensions/aws_19___security_identity_compliance.svg +3 -0
  68. data/docs/extensions/aws_19___storage.svg +3 -0
  69. data/docs/extensions/aws_19_analyti_cs.svg +3 -0
  70. data/docs/extensions/aws_general.svg +3 -0
  71. data/docs/extensions/azure2019.svg +3 -0
  72. data/docs/extensions/azure_cloud.svg +3 -0
  73. data/docs/extensions/azure_enterprise.svg +3 -0
  74. data/docs/extensions/azure_vms.svg +3 -0
  75. data/docs/extensions/basic_network_shapes.svg +3 -0
  76. data/docs/extensions/beds.svg +3 -0
  77. data/docs/extensions/bpmn_2_0.svg +3 -0
  78. data/docs/extensions/cisco_basic.svg +3 -0
  79. data/docs/extensions/cisco_extended.svg +3 -0
  80. data/docs/extensions/common_elements.svg +3 -0
  81. data/docs/extensions/computers_and_monitors.svg +3 -0
  82. data/docs/extensions/containers.svg +3 -0
  83. data/docs/extensions/content_delivery.svg +3 -0
  84. data/docs/extensions/couches.svg +3 -0
  85. data/docs/extensions/cubicle_walls.svg +3 -0
  86. data/docs/extensions/data_flow.svg +3 -0
  87. data/docs/extensions/database.svg +3 -0
  88. data/docs/extensions/deployment.svg +3 -0
  89. data/docs/extensions/desks.svg +3 -0
  90. data/docs/extensions/detailed_network_diagrams.svg +3 -0
  91. data/docs/extensions/developer_tools.svg +3 -0
  92. data/docs/extensions/doors_windows.svg +3 -0
  93. data/docs/extensions/ec2.svg +3 -0
  94. data/docs/extensions/electrical.svg +3 -0
  95. data/docs/extensions/electroni_cs.svg +3 -0
  96. data/docs/extensions/enterprise_application.svg +3 -0
  97. data/docs/extensions/equipment.svg +3 -0
  98. data/docs/extensions/ext_shapes.svg +3 -0
  99. data/docs/extensions/flowchart.svg +3 -0
  100. data/docs/extensions/geometric_shapes.svg +3 -0
  101. data/docs/extensions/google_cloud_platform.svg +3 -0
  102. data/docs/extensions/heat_exchangers.svg +3 -0
  103. data/docs/extensions/i_os_6_i_pad_controls.svg +3 -0
  104. data/docs/extensions/i_os_6_i_pad_elements.svg +3 -0
  105. data/docs/extensions/i_os_6_i_pad_icons.svg +3 -0
  106. data/docs/extensions/i_os_6_i_phone_controls.svg +3 -0
  107. data/docs/extensions/i_os_6_i_phone_elements.svg +3 -0
  108. data/docs/extensions/i_os_6_i_phone_icons.svg +3 -0
  109. data/docs/extensions/i_os_devices.svg +3 -0
  110. data/docs/extensions/i_os_icons.svg +3 -0
  111. data/docs/extensions/i_os_mockups.svg +3 -0
  112. data/docs/extensions/i_os_ui_components.svg +3 -0
  113. data/docs/extensions/i_pad_elements.svg +3 -0
  114. data/docs/extensions/i_phone_elements.svg +3 -0
  115. data/docs/extensions/information.svg +3 -0
  116. data/docs/extensions/instruments.svg +3 -0
  117. data/docs/extensions/internet_of_things.svg +3 -0
  118. data/docs/extensions/kanban.svg +3 -0
  119. data/docs/extensions/kitchen.svg +3 -0
  120. data/docs/extensions/kubernetes_icons.svg +3 -0
  121. data/docs/extensions/logic_gates.svg +3 -0
  122. data/docs/extensions/materials.svg +3 -0
  123. data/docs/extensions/message_routing.svg +3 -0
  124. data/docs/extensions/message_transformation.svg +3 -0
  125. data/docs/extensions/messaging_channels.svg +3 -0
  126. data/docs/extensions/messaging_endpoints.svg +3 -0
  127. data/docs/extensions/messaging_systems.svg +3 -0
  128. data/docs/extensions/mind_map.svg +3 -0
  129. data/docs/extensions/misc.svg +3 -0
  130. data/docs/extensions/misc_floorplan.svg +3 -0
  131. data/docs/extensions/miscellaneous.svg +3 -0
  132. data/docs/extensions/mobile_services.svg +3 -0
  133. data/docs/extensions/network.svg +3 -0
  134. data/docs/extensions/networking.svg +3 -0
  135. data/docs/extensions/on_demand.svg +3 -0
  136. data/docs/extensions/piping.svg +3 -0
  137. data/docs/extensions/power_sources.svg +3 -0
  138. data/docs/extensions/processes.svg +3 -0
  139. data/docs/extensions/pumps.svg +3 -0
  140. data/docs/extensions/repeated_from_the_above.svg +3 -0
  141. data/docs/extensions/restroom.svg +3 -0
  142. data/docs/extensions/s3.svg +3 -0
  143. data/docs/extensions/sdks.svg +3 -0
  144. data/docs/extensions/security_identity.svg +3 -0
  145. data/docs/extensions/server_racks.svg +3 -0
  146. data/docs/extensions/shipments.svg +3 -0
  147. data/docs/extensions/site_map.svg +3 -0
  148. data/docs/extensions/stairs.svg +3 -0
  149. data/docs/extensions/standard.svg +3 -0
  150. data/docs/extensions/system_management.svg +3 -0
  151. data/docs/extensions/tables_chairs.svg +3 -0
  152. data/docs/extensions/technology.svg +3 -0
  153. data/docs/extensions/transistors.svg +3 -0
  154. data/docs/extensions/ui_containers.svg +3 -0
  155. data/docs/extensions/ui_input.svg +3 -0
  156. data/docs/extensions/ui_menus.svg +3 -0
  157. data/docs/extensions/ui_misc.svg +3 -0
  158. data/docs/extensions/ui_widgets.svg +3 -0
  159. data/docs/extensions/uml_class_diagram.svg +3 -0
  160. data/docs/extensions/uml_component.svg +3 -0
  161. data/docs/extensions/uml_entity_relationship.svg +3 -0
  162. data/docs/extensions/uml_sequence.svg +3 -0
  163. data/docs/extensions/uml_state_activity.svg +3 -0
  164. data/docs/extensions/uml_use_case.svg +3 -0
  165. data/docs/extensions/value_stream_mapping.svg +3 -0
  166. data/docs/extensions/valves.svg +3 -0
  167. data/docs/extensions/venn_gradient.svg +3 -0
  168. data/docs/extensions/venn_plain.svg +3 -0
  169. data/docs/extensions/vessels.svg +3 -0
  170. data/docs/extensions.md +614 -0
  171. data/docs/project_done.svg +1 -1
  172. data/docs/project_in_progress.svg +1 -1
  173. data/docs/project_todo.svg +1 -1
  174. data/docs/samples/grid-direction-horizontal.svg +1 -1
  175. data/docs/samples/grid-direction-vertical.svg +1 -1
  176. data/docs/samples/samples.svg +1 -1
  177. data/docs/samples/styles-glass.svg +1 -1
  178. data/docs/samples/styles-plain.svg +1 -1
  179. data/docs/samples/styles-rounded.svg +1 -1
  180. data/docs/samples/styles-shadow.svg +1 -1
  181. data/docs/samples/styles-sketch.svg +1 -1
  182. data/docs/samples/themes-random.svg +1 -1
  183. data/lib/drawio_dsl/configuration_shapes.rb +12 -8
  184. data/lib/drawio_dsl/dom_builder.rb +23 -8
  185. data/lib/drawio_dsl/dom_builder_shapes.rb +92 -82
  186. data/lib/drawio_dsl/drawio_extensions.json +14024 -0
  187. data/lib/drawio_dsl/drawio_extensions.rb +4599 -0
  188. data/lib/drawio_dsl/drawio_extensions_active.rb +32 -0
  189. data/lib/drawio_dsl/drawio_shapes.rb +108 -96
  190. data/lib/drawio_dsl/formatters/_.rb +8 -0
  191. data/lib/drawio_dsl/formatters/base_formatter.rb +24 -0
  192. data/lib/drawio_dsl/formatters/factory.rb +32 -0
  193. data/lib/drawio_dsl/formatters/html_builder.rb +84 -0
  194. data/lib/drawio_dsl/formatters/interface_formatter.rb +53 -0
  195. data/lib/drawio_dsl/formatters/klass_formatter.rb +52 -0
  196. data/lib/drawio_dsl/formatters/style_builder.rb +63 -0
  197. data/lib/drawio_dsl/layout_engine.rb +17 -7
  198. data/lib/drawio_dsl/schema/_.rb +8 -4
  199. data/lib/drawio_dsl/schema/diagram.rb +1 -1
  200. data/lib/drawio_dsl/schema/layouts/flex_layout.rb +1 -2
  201. data/lib/drawio_dsl/schema/layouts/grid_layout.rb +1 -2
  202. data/lib/drawio_dsl/schema/layouts/layout.rb +0 -3
  203. data/lib/drawio_dsl/schema/node.rb +21 -2
  204. data/lib/drawio_dsl/schema/node_list.rb +20 -1
  205. data/lib/drawio_dsl/schema/page.rb +14 -3
  206. data/lib/drawio_dsl/schema/shapes/interface.rb +9 -0
  207. data/lib/drawio_dsl/schema/shapes/klass.rb +9 -0
  208. data/lib/drawio_dsl/schema/shapes/shape.rb +14 -5
  209. data/lib/drawio_dsl/schema/virtual/anchor.rb +26 -0
  210. data/lib/drawio_dsl/version.rb +1 -1
  211. data/lib/drawio_dsl/xml_builder.rb +4 -8
  212. data/lib/drawio_dsl.rb +3 -0
  213. data/package-lock.json +2 -2
  214. data/package.json +1 -1
  215. metadata +174 -2
@@ -4,188 +4,198 @@
4
4
  module DrawioDsl
5
5
  # DrawioDsl is a DSL for draw-io diagrams.
6
6
  module DomBuilderShapes
7
- def add_h1(**opts)
8
- h1 = DrawioDsl::Schema::H1.new(current_page, **opts)
7
+ def add_h1(**opts, &block)
8
+ h1 = DrawioDsl::Schema::H1.new(current_page, **opts, &block)
9
9
  add_shape(h1)
10
10
  end
11
11
 
12
- def add_h2(**opts)
13
- h2 = DrawioDsl::Schema::H2.new(current_page, **opts)
12
+ def add_h2(**opts, &block)
13
+ h2 = DrawioDsl::Schema::H2.new(current_page, **opts, &block)
14
14
  add_shape(h2)
15
15
  end
16
16
 
17
- def add_h3(**opts)
18
- h3 = DrawioDsl::Schema::H3.new(current_page, **opts)
17
+ def add_h3(**opts, &block)
18
+ h3 = DrawioDsl::Schema::H3.new(current_page, **opts, &block)
19
19
  add_shape(h3)
20
20
  end
21
21
 
22
- def add_h4(**opts)
23
- h4 = DrawioDsl::Schema::H4.new(current_page, **opts)
22
+ def add_h4(**opts, &block)
23
+ h4 = DrawioDsl::Schema::H4.new(current_page, **opts, &block)
24
24
  add_shape(h4)
25
25
  end
26
26
 
27
- def add_h5(**opts)
28
- h5 = DrawioDsl::Schema::H5.new(current_page, **opts)
27
+ def add_h5(**opts, &block)
28
+ h5 = DrawioDsl::Schema::H5.new(current_page, **opts, &block)
29
29
  add_shape(h5)
30
30
  end
31
31
 
32
- def add_h6(**opts)
33
- h6 = DrawioDsl::Schema::H6.new(current_page, **opts)
32
+ def add_h6(**opts, &block)
33
+ h6 = DrawioDsl::Schema::H6.new(current_page, **opts, &block)
34
34
  add_shape(h6)
35
35
  end
36
36
 
37
- def add_p(**opts)
38
- p = DrawioDsl::Schema::P.new(current_page, **opts)
37
+ def add_p(**opts, &block)
38
+ p = DrawioDsl::Schema::P.new(current_page, **opts, &block)
39
39
  add_shape(p)
40
40
  end
41
41
 
42
- def add_actor(**opts)
43
- actor = DrawioDsl::Schema::Actor.new(current_page, **opts)
42
+ def add_actor(**opts, &block)
43
+ actor = DrawioDsl::Schema::Actor.new(current_page, **opts, &block)
44
44
  add_shape(actor)
45
45
  end
46
46
 
47
- def add_actor2(**opts)
48
- actor2 = DrawioDsl::Schema::Actor2.new(current_page, **opts)
47
+ def add_actor2(**opts, &block)
48
+ actor2 = DrawioDsl::Schema::Actor2.new(current_page, **opts, &block)
49
49
  add_shape(actor2)
50
50
  end
51
51
 
52
- def add_callout(**opts)
53
- callout = DrawioDsl::Schema::Callout.new(current_page, **opts)
52
+ def add_callout(**opts, &block)
53
+ callout = DrawioDsl::Schema::Callout.new(current_page, **opts, &block)
54
54
  add_shape(callout)
55
55
  end
56
56
 
57
- def add_callout2(**opts)
58
- callout2 = DrawioDsl::Schema::Callout2.new(current_page, **opts)
57
+ def add_callout2(**opts, &block)
58
+ callout2 = DrawioDsl::Schema::Callout2.new(current_page, **opts, &block)
59
59
  add_shape(callout2)
60
60
  end
61
61
 
62
- def add_callout3(**opts)
63
- callout3 = DrawioDsl::Schema::Callout3.new(current_page, **opts)
62
+ def add_callout3(**opts, &block)
63
+ callout3 = DrawioDsl::Schema::Callout3.new(current_page, **opts, &block)
64
64
  add_shape(callout3)
65
65
  end
66
66
 
67
- def add_callout4(**opts)
68
- callout4 = DrawioDsl::Schema::Callout4.new(current_page, **opts)
67
+ def add_callout4(**opts, &block)
68
+ callout4 = DrawioDsl::Schema::Callout4.new(current_page, **opts, &block)
69
69
  add_shape(callout4)
70
70
  end
71
71
 
72
- def add_circle(**opts)
73
- circle = DrawioDsl::Schema::Circle.new(current_page, **opts)
72
+ def add_circle(**opts, &block)
73
+ circle = DrawioDsl::Schema::Circle.new(current_page, **opts, &block)
74
74
  add_shape(circle)
75
75
  end
76
76
 
77
- def add_cloud(**opts)
78
- cloud = DrawioDsl::Schema::Cloud.new(current_page, **opts)
77
+ def add_cloud(**opts, &block)
78
+ cloud = DrawioDsl::Schema::Cloud.new(current_page, **opts, &block)
79
79
  add_shape(cloud)
80
80
  end
81
81
 
82
- def add_cross(**opts)
83
- cross = DrawioDsl::Schema::Cross.new(current_page, **opts)
82
+ def add_container(**opts, &block)
83
+ container = DrawioDsl::Schema::Container.new(current_page, **opts, &block)
84
+ add_shape(container)
85
+ end
86
+
87
+ def add_container2(**opts, &block)
88
+ container2 = DrawioDsl::Schema::Container2.new(current_page, **opts, &block)
89
+ add_shape(container2)
90
+ end
91
+
92
+ def add_container3(**opts, &block)
93
+ container3 = DrawioDsl::Schema::Container3.new(current_page, **opts, &block)
94
+ add_shape(container3)
95
+ end
96
+
97
+ def add_container4(**opts, &block)
98
+ container4 = DrawioDsl::Schema::Container4.new(current_page, **opts, &block)
99
+ add_shape(container4)
100
+ end
101
+
102
+ def add_cross(**opts, &block)
103
+ cross = DrawioDsl::Schema::Cross.new(current_page, **opts, &block)
84
104
  add_shape(cross)
85
105
  end
86
106
 
87
- def add_envelop(**opts)
88
- envelop = DrawioDsl::Schema::Envelop.new(current_page, **opts)
107
+ def add_envelop(**opts, &block)
108
+ envelop = DrawioDsl::Schema::Envelop.new(current_page, **opts, &block)
89
109
  add_shape(envelop)
90
110
  end
91
111
 
92
- def add_diamond(**opts)
93
- diamond = DrawioDsl::Schema::Diamond.new(current_page, **opts)
112
+ def add_diamond(**opts, &block)
113
+ diamond = DrawioDsl::Schema::Diamond.new(current_page, **opts, &block)
94
114
  add_shape(diamond)
95
115
  end
96
116
 
97
- def add_document(**opts)
98
- document = DrawioDsl::Schema::Document.new(current_page, **opts)
117
+ def add_document(**opts, &block)
118
+ document = DrawioDsl::Schema::Document.new(current_page, **opts, &block)
99
119
  add_shape(document)
100
120
  end
101
121
 
102
- def add_ellipse(**opts)
103
- ellipse = DrawioDsl::Schema::Ellipse.new(current_page, **opts)
122
+ def add_ellipse(**opts, &block)
123
+ ellipse = DrawioDsl::Schema::Ellipse.new(current_page, **opts, &block)
104
124
  add_shape(ellipse)
105
125
  end
106
126
 
107
- def add_hexagon(**opts)
108
- hexagon = DrawioDsl::Schema::Hexagon.new(current_page, **opts)
127
+ def add_hexagon(**opts, &block)
128
+ hexagon = DrawioDsl::Schema::Hexagon.new(current_page, **opts, &block)
109
129
  add_shape(hexagon)
110
130
  end
111
131
 
112
- def add_container(**opts)
113
- container = DrawioDsl::Schema::Container.new(current_page, **opts)
114
- add_shape(container)
115
- end
116
-
117
- def add_container2(**opts)
118
- container2 = DrawioDsl::Schema::Container2.new(current_page, **opts)
119
- add_shape(container2)
132
+ def add_interface(**opts, &block)
133
+ interface = DrawioDsl::Schema::Interface.new(current_page, **opts, &block)
134
+ add_shape(interface)
120
135
  end
121
136
 
122
- def add_container3(**opts)
123
- container3 = DrawioDsl::Schema::Container3.new(current_page, **opts)
124
- add_shape(container3)
125
- end
126
-
127
- def add_container4(**opts)
128
- container4 = DrawioDsl::Schema::Container4.new(current_page, **opts)
129
- add_shape(container4)
137
+ def add_klass(**opts, &block)
138
+ klass = DrawioDsl::Schema::Klass.new(current_page, **opts, &block)
139
+ add_shape(klass)
130
140
  end
131
141
 
132
- def add_note(**opts)
133
- note = DrawioDsl::Schema::Note.new(current_page, **opts)
142
+ def add_note(**opts, &block)
143
+ note = DrawioDsl::Schema::Note.new(current_page, **opts, &block)
134
144
  add_shape(note)
135
145
  end
136
146
 
137
- def add_process(**opts)
138
- process = DrawioDsl::Schema::Process.new(current_page, **opts)
147
+ def add_process(**opts, &block)
148
+ process = DrawioDsl::Schema::Process.new(current_page, **opts, &block)
139
149
  add_shape(process)
140
150
  end
141
151
 
142
- def add_rectangle(**opts)
143
- rectangle = DrawioDsl::Schema::Rectangle.new(current_page, **opts)
152
+ def add_rectangle(**opts, &block)
153
+ rectangle = DrawioDsl::Schema::Rectangle.new(current_page, **opts, &block)
144
154
  add_shape(rectangle)
145
155
  end
146
156
 
147
- def add_rectangle2(**opts)
148
- rectangle2 = DrawioDsl::Schema::Rectangle2.new(current_page, **opts)
157
+ def add_rectangle2(**opts, &block)
158
+ rectangle2 = DrawioDsl::Schema::Rectangle2.new(current_page, **opts, &block)
149
159
  add_shape(rectangle2)
150
160
  end
151
161
 
152
- def add_square(**opts)
153
- square = DrawioDsl::Schema::Square.new(current_page, **opts)
162
+ def add_square(**opts, &block)
163
+ square = DrawioDsl::Schema::Square.new(current_page, **opts, &block)
154
164
  add_shape(square)
155
165
  end
156
166
 
157
- def add_step(**opts)
158
- step = DrawioDsl::Schema::Step.new(current_page, **opts)
167
+ def add_step(**opts, &block)
168
+ step = DrawioDsl::Schema::Step.new(current_page, **opts, &block)
159
169
  add_shape(step)
160
170
  end
161
171
 
162
- def add_tick(**opts)
163
- tick = DrawioDsl::Schema::Tick.new(current_page, **opts)
172
+ def add_tick(**opts, &block)
173
+ tick = DrawioDsl::Schema::Tick.new(current_page, **opts, &block)
164
174
  add_shape(tick)
165
175
  end
166
176
 
167
- def add_face(**opts)
168
- face = DrawioDsl::Schema::Face.new(current_page, **opts)
177
+ def add_face(**opts, &block)
178
+ face = DrawioDsl::Schema::Face.new(current_page, **opts, &block)
169
179
  add_shape(face)
170
180
  end
171
181
 
172
- def add_triangle(**opts)
173
- triangle = DrawioDsl::Schema::Triangle.new(current_page, **opts)
182
+ def add_triangle(**opts, &block)
183
+ triangle = DrawioDsl::Schema::Triangle.new(current_page, **opts, &block)
174
184
  add_shape(triangle)
175
185
  end
176
186
 
177
- def add_embed_row(**opts)
178
- embed_row = DrawioDsl::Schema::EmbedRow.new(current_page, **opts)
187
+ def add_embed_row(**opts, &block)
188
+ embed_row = DrawioDsl::Schema::EmbedRow.new(current_page, **opts, &block)
179
189
  add_shape(embed_row)
180
190
  end
181
191
 
182
- def add_embed_col50(**opts)
183
- embed_col50 = DrawioDsl::Schema::EmbedCol50.new(current_page, **opts)
192
+ def add_embed_col50(**opts, &block)
193
+ embed_col50 = DrawioDsl::Schema::EmbedCol50.new(current_page, **opts, &block)
184
194
  add_shape(embed_col50)
185
195
  end
186
196
 
187
- def add_embed_col200(**opts)
188
- embed_col200 = DrawioDsl::Schema::EmbedCol200.new(current_page, **opts)
197
+ def add_embed_col200(**opts, &block)
198
+ embed_col200 = DrawioDsl::Schema::EmbedCol200.new(current_page, **opts, &block)
189
199
  add_shape(embed_col200)
190
200
  end
191
201
  end