asciidoctor-diagram 2.2.11 → 2.2.12

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 (99) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.adoc +7 -0
  3. data/lib/asciidoctor-diagram/plantuml/converter.rb +1 -0
  4. data/lib/asciidoctor-diagram/structurizr/renderers.rb +5 -0
  5. data/lib/asciidoctor-diagram/version.rb +1 -1
  6. metadata +3 -130
  7. data/Rakefile +0 -9
  8. data/docs/antora.yml +0 -5
  9. data/docs/modules/ROOT/images/a2s.svg +0 -44
  10. data/docs/modules/ROOT/images/actdiag.png +0 -0
  11. data/docs/modules/ROOT/images/asciidoctor-diagram-classes.png +0 -0
  12. data/docs/modules/ROOT/images/asciidoctor-diagram-process.png +0 -0
  13. data/docs/modules/ROOT/images/barcode.png +0 -0
  14. data/docs/modules/ROOT/images/barcode2.png +0 -0
  15. data/docs/modules/ROOT/images/blockdiag.png +0 -0
  16. data/docs/modules/ROOT/images/d2.png +0 -0
  17. data/docs/modules/ROOT/images/lilypond.png +0 -0
  18. data/docs/modules/ROOT/images/penrose.png +0 -0
  19. data/docs/modules/ROOT/nav.adoc +0 -41
  20. data/docs/modules/ROOT/pages/blocks.adoc +0 -140
  21. data/docs/modules/ROOT/pages/diagram_types/a2s.adoc +0 -47
  22. data/docs/modules/ROOT/pages/diagram_types/actdiag.adoc +0 -46
  23. data/docs/modules/ROOT/pages/diagram_types/barcode.adoc +0 -72
  24. data/docs/modules/ROOT/pages/diagram_types/blockdiag.adoc +0 -38
  25. data/docs/modules/ROOT/pages/diagram_types/bpmn.adoc +0 -21
  26. data/docs/modules/ROOT/pages/diagram_types/bytefield.adoc +0 -16
  27. data/docs/modules/ROOT/pages/diagram_types/d2.adoc +0 -43
  28. data/docs/modules/ROOT/pages/diagram_types/dbml.adoc +0 -16
  29. data/docs/modules/ROOT/pages/diagram_types/diagrams.adoc +0 -20
  30. data/docs/modules/ROOT/pages/diagram_types/ditaa.adoc +0 -31
  31. data/docs/modules/ROOT/pages/diagram_types/dpic.adoc +0 -16
  32. data/docs/modules/ROOT/pages/diagram_types/erd.adoc +0 -17
  33. data/docs/modules/ROOT/pages/diagram_types/gnuplot.adoc +0 -27
  34. data/docs/modules/ROOT/pages/diagram_types/graphviz.adoc +0 -21
  35. data/docs/modules/ROOT/pages/diagram_types/lilypond.adoc +0 -27
  36. data/docs/modules/ROOT/pages/diagram_types/meme.adoc +0 -34
  37. data/docs/modules/ROOT/pages/diagram_types/mermaid.adoc +0 -28
  38. data/docs/modules/ROOT/pages/diagram_types/msc.adoc +0 -23
  39. data/docs/modules/ROOT/pages/diagram_types/nomnoml.adoc +0 -16
  40. data/docs/modules/ROOT/pages/diagram_types/nwdiag.adoc +0 -22
  41. data/docs/modules/ROOT/pages/diagram_types/penrose.adoc +0 -50
  42. data/docs/modules/ROOT/pages/diagram_types/pikchr.adoc +0 -16
  43. data/docs/modules/ROOT/pages/diagram_types/plantuml.adoc +0 -24
  44. data/docs/modules/ROOT/pages/diagram_types/seqdiag.adoc +0 -18
  45. data/docs/modules/ROOT/pages/diagram_types/shaape.adoc +0 -18
  46. data/docs/modules/ROOT/pages/diagram_types/smcat.adoc +0 -18
  47. data/docs/modules/ROOT/pages/diagram_types/structurizr.adoc +0 -29
  48. data/docs/modules/ROOT/pages/diagram_types/svgbob.adoc +0 -21
  49. data/docs/modules/ROOT/pages/diagram_types/symbolator.adoc +0 -19
  50. data/docs/modules/ROOT/pages/diagram_types/syntrax.adoc +0 -28
  51. data/docs/modules/ROOT/pages/diagram_types/tikz.adoc +0 -21
  52. data/docs/modules/ROOT/pages/diagram_types/umlet.adoc +0 -19
  53. data/docs/modules/ROOT/pages/diagram_types/vega.adoc +0 -28
  54. data/docs/modules/ROOT/pages/diagram_types/wavedrom.adoc +0 -17
  55. data/docs/modules/ROOT/pages/enabling.adoc +0 -25
  56. data/docs/modules/ROOT/pages/generate.adoc +0 -15
  57. data/docs/modules/ROOT/pages/index.adoc +0 -12
  58. data/docs/modules/ROOT/pages/installation.adoc +0 -32
  59. data/docs/modules/ROOT/pages/output.adoc +0 -19
  60. data/docs/modules/ROOT/partials/shared-attrs.adoc +0 -12
  61. data/docs/modules/ROOT/partials/uris.adoc +0 -48
  62. data/examples/Gemfile +0 -3
  63. data/examples/README.adoc +0 -18
  64. data/examples/design.adoc +0 -78
  65. data/examples/features.adoc +0 -189
  66. data/spec/a2s_spec.rb +0 -33
  67. data/spec/barcode_spec.rb +0 -176
  68. data/spec/blockdiag_spec.rb +0 -20
  69. data/spec/bpmn_spec.rb +0 -60
  70. data/spec/bytefield_spec.rb +0 -96
  71. data/spec/d2_spec.rb +0 -87
  72. data/spec/dbml_spec.rb +0 -32
  73. data/spec/diagrams_spec.rb +0 -27
  74. data/spec/ditaa_spec.rb +0 -191
  75. data/spec/dpic_spec.rb +0 -23
  76. data/spec/erd_spec.rb +0 -96
  77. data/spec/gnuplot_spec.rb +0 -229
  78. data/spec/graphviz_py_spec.rb +0 -33
  79. data/spec/graphviz_spec.rb +0 -24
  80. data/spec/lilypond_spec.rb +0 -17
  81. data/spec/man.jpg +0 -0
  82. data/spec/meme_spec.rb +0 -67
  83. data/spec/mermaid_spec.rb +0 -161
  84. data/spec/msc_spec.rb +0 -37
  85. data/spec/nomnoml_spec.rb +0 -36
  86. data/spec/pikchr_spec.rb +0 -73
  87. data/spec/plantuml_spec.rb +0 -800
  88. data/spec/shaape_spec.rb +0 -20
  89. data/spec/shared_examples.rb +0 -766
  90. data/spec/smcat_spec.rb +0 -30
  91. data/spec/structurizr_spec.rb +0 -41
  92. data/spec/svgbob_spec.rb +0 -33
  93. data/spec/symbolator_spec.rb +0 -27
  94. data/spec/syntrax_spec.rb +0 -22
  95. data/spec/test_helper_methods.rb +0 -118
  96. data/spec/tikz_spec.rb +0 -181
  97. data/spec/umlet_spec.rb +0 -32
  98. data/spec/vega_spec.rb +0 -133
  99. data/spec/wavedrom_spec.rb +0 -21
@@ -1,800 +0,0 @@
1
- require_relative 'test_helper_methods'
2
-
3
- PLANTUML_CODE = <<-eos
4
- User -> (Start)
5
- User --> (Use the application) : Label
6
-
7
- :Main Admin: ---> (Use the application) : Another label
8
- eos
9
-
10
- describe Asciidoctor::Diagram::PlantUmlInlineMacroProcessor do
11
- include_examples "inline_macro", :plantuml, PLANTUML_CODE, [:png, :svg]
12
- end
13
-
14
- describe Asciidoctor::Diagram::PlantUmlBlockMacroProcessor do
15
- include_examples "block_macro", :plantuml, PLANTUML_CODE, [:png, :svg, :txt]
16
-
17
- it 'should support substitutions in diagram code' do
18
- code = <<-eos
19
- class {parent-class}
20
- class {child-class}
21
- {parent-class} <|-- {child-class}
22
- eos
23
-
24
- File.write('plantuml.txt', code)
25
-
26
- doc = <<-eos
27
- = Hello, PlantUML!
28
- Doc Writer <doc@example.com>
29
- :parent-class: ParentClass
30
- :child-class: ChildClass
31
-
32
- == First Section
33
-
34
- plantuml::plantuml.txt[format="svg", subs=attributes+]
35
- eos
36
-
37
- d = load_asciidoc doc, :attributes => {'backend' => 'html5'}
38
- expect(d).to_not be_nil
39
-
40
- b = d.find { |bl| bl.context == :image }
41
- expect(b).to_not be_nil
42
-
43
- target = b.attributes['target']
44
- expect(File.exist?(target)).to be true
45
-
46
- content = File.read(target, :encoding => Encoding::UTF_8)
47
- expect(content).to include('ParentClass')
48
- expect(content).to include('ChildClass')
49
- end
50
-
51
- it 'should support substitutions in the target attribute' do
52
- code = <<-eos
53
- class {parent-class}
54
- class {child-class}
55
- {parent-class} <|-- {child-class}
56
- eos
57
-
58
- File.write('plantuml.txt', code)
59
-
60
- doc = <<-eos
61
- = Hello, PlantUML!
62
- Doc Writer <doc@example.com>
63
- :file: plantuml
64
- :parent-class: ParentClass
65
- :child-class: ChildClass
66
-
67
- == First Section
68
-
69
- plantuml::{file}.txt[format="svg", subs=attributes+]
70
- eos
71
-
72
- d = load_asciidoc doc, :attributes => {'backend' => 'html5'}
73
- expect(d).to_not be_nil
74
-
75
- b = d.find { |bl| bl.context == :image }
76
- expect(b).to_not be_nil
77
-
78
- target = b.attributes['target']
79
- expect(File.exist?(target)).to be true
80
-
81
- content = File.read(target, :encoding => Encoding::UTF_8)
82
- expect(content).to include('ParentClass')
83
- expect(content).to include('ChildClass')
84
- end
85
-
86
- it 'should support substitutions in the format attribute' do
87
- code = <<-eos
88
- class Parent
89
- class Child
90
- Parent <|-- Child
91
- eos
92
-
93
- File.write('plantuml.txt', code)
94
-
95
- doc = <<-eos
96
- = Hello, PlantUML!
97
- Doc Writer <doc@example.com>
98
- :file: plantuml
99
- :plantumlformat: png
100
-
101
- == First Section
102
-
103
- plantuml::{file}.txt[format="{plantumlformat}", subs=attributes+]
104
- eos
105
-
106
- d = load_asciidoc doc, :attributes => {'backend' => 'html5'}
107
- expect(d).to_not be_nil
108
-
109
- b = d.find { |bl| bl.context == :image }
110
- expect(b).to_not be_nil
111
-
112
- target = b.attributes['target']
113
- expect(target).to match(/\.png$/)
114
- expect(File.exist?(target)).to be true
115
-
116
- expect(b.attributes['width']).to_not be_nil
117
- expect(b.attributes['height']).to_not be_nil
118
- end
119
-
120
- it 'should resolve !include directives with relative paths' do
121
- included = <<-eos
122
- interface List
123
- List : int size()
124
- List : void clear()
125
- eos
126
-
127
- code = <<-eos
128
- !include list.iuml
129
- List <|.. ArrayList
130
- eos
131
-
132
- Dir.mkdir('dir')
133
- File.write('dir/list.iuml', included)
134
- File.write('dir/plantuml.txt', code)
135
-
136
- doc = <<-eos
137
- = Hello, PlantUML!
138
- Doc Writer <doc@example.com>
139
- :parent-class: ParentClass
140
- :child-class: ChildClass
141
-
142
- == First Section
143
-
144
- plantuml::dir/plantuml.txt[format="svg", subs=attributes+]
145
- eos
146
-
147
- d = load_asciidoc doc, :attributes => {'backend' => 'html5'}
148
-
149
- expect(d).to_not be_nil
150
-
151
- b = d.find { |bl| bl.context == :image }
152
- expect(b).to_not be_nil
153
-
154
- target = b.attributes['target']
155
- expect(File.exist?(target)).to be true
156
-
157
- content = File.read(target, :encoding => Encoding::UTF_8)
158
- expect(content).to_not include('!include')
159
- end
160
- end
161
-
162
- describe Asciidoctor::Diagram::PlantUmlBlockProcessor do
163
- include_examples "block", :plantuml, PLANTUML_CODE, [:png, :svg, :txt]
164
-
165
- it "should work with plantuml.com" do
166
- doc = <<-eos
167
- = Hello, kroki!
168
- :diagram-server-url: http://plantuml.com/plantuml
169
- :diagram-server-type: plantuml
170
- Doc Writer <doc@example.com>
171
-
172
- == First Section
173
-
174
- [plantuml, format=svg]
175
- ----
176
- #{PLANTUML_CODE}
177
- ----
178
- eos
179
-
180
- d = load_asciidoc doc
181
- expect(d).to_not be_nil
182
-
183
- b = d.find { |bl| bl.context == :image }
184
- expect(b).to_not be_nil
185
-
186
- expect(b.content_model).to eq :empty
187
-
188
- target = b.attributes['target']
189
- expect(target).to_not be_nil
190
- expect(target).to match(/\.svg$/)
191
- expect(File.exist?(target)).to be true
192
-
193
- expect(b.attributes['width']).to_not be_nil
194
- expect(b.attributes['height']).to_not be_nil
195
- end
196
-
197
- it "should handle syntax errors gracefully" do
198
- doc = <<-eos
199
- [plantuml]
200
- ----
201
- @startuml
202
- xxx
203
- @enduml
204
- ----
205
- eos
206
-
207
- options = {}
208
- options[:attributes] = {}
209
- options[:attributes]['diagram-on-error'] = 'log'
210
-
211
- d = load_asciidoc doc, options
212
- expect(d).to_not be_nil
213
-
214
- b = d.find { |bl| bl.context == :listing }
215
- expect(b).to_not be_nil
216
-
217
- expect(b.source).to include 'Failed to generate image'
218
- end
219
-
220
- it 'should use plantuml configuration when specified as a document attribute' do
221
- doc = <<-eos
222
- = Hello, PlantUML!
223
- Doc Writer <doc@example.com>
224
- :plantuml-config: test.config
225
- :plantuml-format: svg
226
-
227
- == First Section
228
-
229
- [plantuml]
230
- ----
231
- actor Foo1
232
- boundary Foo2
233
- Foo1 -> Foo2 : To boundary
234
- ----
235
- eos
236
-
237
- config = <<-eos
238
- skinparam ArrowColor #DEADBE
239
- eos
240
-
241
- File.open('test.config', 'w') do |f|
242
- f.write config
243
- end
244
-
245
- d = load_asciidoc doc
246
- b = d.find { |bl| bl.context == :image }
247
-
248
- target = b.attributes['target']
249
- expect(target).to_not be_nil
250
- expect(File.exist?(target)).to be true
251
-
252
- svg = File.read(target, :encoding => Encoding::UTF_8)
253
- expect(svg).to match(/<[^<]+ fill=["']#DEADBE["']/)
254
- end
255
-
256
- it 'should use plantuml theme when specified as a document attribute' do
257
- doc = <<-eos
258
- = Hello, PlantUML!
259
- Doc Writer <doc@example.com>
260
- :plantuml-format: svg
261
- :plantuml-theme: spacelab
262
-
263
- == First Section
264
-
265
- [plantuml]
266
- ----
267
- actor Foo1
268
- boundary Foo2
269
- Foo1 -> Foo2 : To boundary
270
- ----
271
- eos
272
-
273
- d = load_asciidoc doc
274
- b = d.find { |bl| bl.context == :image }
275
-
276
- target = b.attributes['target']
277
- expect(target).to_not be_nil
278
- expect(File.exist?(target)).to be true
279
-
280
- svg = File.read(target, :encoding => Encoding::UTF_8)
281
- expect(svg).to match(/<[^<]+ stop-color=["']#7C9AB9["']/)
282
- end
283
-
284
- it 'should use plantuml include dir when specified as a document attribute' do
285
- doc = <<-eos
286
- = Hello, PlantUML!
287
- Doc Writer <doc@example.com>
288
- :plantuml-includedir: include
289
- :plantuml-format: svg
290
-
291
- == First Section
292
-
293
- [plantuml]
294
- ----
295
- !include common.puml
296
- actor Foo1
297
- boundary Foo2
298
- Foo1 -> Foo2 : To boundary
299
- ----
300
- eos
301
-
302
- includefile = <<-eos
303
- skinparam ArrowColor #DEADBE
304
- eos
305
- Dir.mkdir('include')
306
- File.open('include/common.puml', 'w') do |f|
307
- f.write includefile
308
- end
309
-
310
- d = load_asciidoc doc
311
- b = d.find { |bl| bl.context == :image }
312
-
313
- target = b.attributes['target']
314
- expect(target).to_not be_nil
315
- expect(File.exist?(target)).to be true
316
-
317
- svg = File.read(target, :encoding => Encoding::UTF_8)
318
- expect(svg).to match(/<[^<]+ fill=["']#DEADBE["']/)
319
- end
320
-
321
- it 'should support salt diagrams using salt block type' do
322
- doc = <<-eos
323
- = Hello, PlantUML!
324
- Doc Writer <doc@example.com>
325
-
326
- == First Section
327
-
328
- [salt, format="png"]
329
- ----
330
- {
331
- Just plain text
332
- [This is my button]
333
- () Unchecked radio
334
- (X) Checked radio
335
- [] Unchecked box
336
- [X] Checked box
337
- "Enter text here "
338
- ^This is a droplist^
339
- }
340
- ----
341
- eos
342
-
343
- d = load_asciidoc doc, :attributes => {'backend' => 'docbook5'}
344
- expect(d).to_not be_nil
345
-
346
- b = d.find { |bl| bl.context == :image }
347
- expect(b).to_not be_nil
348
-
349
- target = b.attributes['target']
350
- expect(File.exist?(target)).to be true
351
-
352
- expect(b.attributes['width']).to be_nil
353
- expect(b.attributes['height']).to be_nil
354
- end
355
-
356
- it 'should support salt diagrams using plantuml block type' do
357
- doc = <<-eos
358
- = Hello, PlantUML!
359
- Doc Writer <doc@example.com>
360
-
361
- == First Section
362
-
363
- [plantuml, format="png"]
364
- ----
365
- salt
366
- {
367
- Just plain text
368
- [This is my button]
369
- () Unchecked radio
370
- (X) Checked radio
371
- [] Unchecked box
372
- [X] Checked box
373
- "Enter text here "
374
- ^This is a droplist^
375
- }
376
- ----
377
- eos
378
-
379
- d = load_asciidoc doc, :attributes => {'backend' => 'docbook5'}
380
- expect(d).to_not be_nil
381
-
382
- b = d.find { |bl| bl.context == :image }
383
- expect(b).to_not be_nil
384
-
385
- target = b.attributes['target']
386
- expect(File.exist?(target)).to be true
387
-
388
- expect(b.attributes['width']).to be_nil
389
- expect(b.attributes['height']).to be_nil
390
- end
391
-
392
- it 'should support salt diagrams containing tree widgets' do
393
- doc = <<-eos
394
- = Hello, PlantUML!
395
- Doc Writer <doc@example.com>
396
-
397
- == First Section
398
-
399
- [plantuml, format="png"]
400
- ----
401
- salt
402
- {
403
- {T
404
- +A
405
- ++a
406
- }
407
- }
408
- ----
409
- eos
410
-
411
- d = load_asciidoc doc, :attributes => {'backend' => 'docbook5'}
412
- expect(d).to_not be_nil
413
-
414
- b = d.find { |bl| bl.context == :image }
415
- expect(b).to_not be_nil
416
-
417
- target = b.attributes['target']
418
- expect(File.exist?(target)).to be true
419
-
420
- expect(b.attributes['width']).to be_nil
421
- expect(b.attributes['height']).to be_nil
422
- end
423
-
424
- it 'should support ditaa diagrams' do
425
- doc = <<-eos
426
- = Hello, PlantUML!
427
- Doc Writer <doc@example.com>
428
-
429
- == First Section
430
-
431
- [plantuml, format="png"]
432
- ----
433
- @startditaa -E
434
- +---------+
435
- | example |
436
- +---------+
437
- @endditaa
438
- ----
439
- eos
440
-
441
- d = load_asciidoc doc, :attributes => {'backend' => 'docbook5'}
442
- expect(d).to_not be_nil
443
-
444
- b = d.find { |bl| bl.context == :image }
445
- expect(b).to_not be_nil
446
-
447
- target = b.attributes['target']
448
- expect(File.exist?(target)).to be true
449
-
450
- expect(b.attributes['width']).to be_nil
451
- expect(b.attributes['height']).to be_nil
452
- end
453
-
454
- it 'should handle embedded creole images correctly' do
455
- creole_doc = <<-eos
456
- = Hello, PlantUML!
457
- Doc Writer <doc@example.com>
458
-
459
- == First Section
460
-
461
- [plantuml, format="png"]
462
- ----
463
- :* You can change <color:red>text color</color>
464
- * You can change <back:cadetblue>background color</back>
465
- * You can change <size:18>size</size>
466
- * You use <u>legacy</u> <b>HTML <i>tag</i></b>
467
- * You use <u:red>color</u> <s:green>in HTML</s> <w:#0000FF>tag</w>
468
- * Use image : <img:sourceforge.jpg>
469
- * Use image : <img:http://www.foo.bar/sourceforge.jpg>
470
- * Use image : <img:file:///sourceforge.jpg>
471
-
472
- ;
473
- ----
474
- eos
475
-
476
- load_asciidoc creole_doc, :attributes => {'backend' => 'html5'}
477
-
478
- # No real way to assert this since PlantUML doesn't produce an error on file not found
479
- end
480
-
481
- it 'should resolve !include directives with relative paths' do
482
- included = <<-eos
483
- interface List
484
- List : int size()
485
- List : void clear()
486
- eos
487
-
488
- sub = <<-eos
489
- @startuml
490
- A -> A : stuff1
491
- !startsub BASIC
492
- B -> B : stuff2
493
- !endsub
494
- C -> C : stuff3
495
- !startsub BASIC
496
- D -> D : stuff4
497
- !endsub
498
- @enduml
499
- eos
500
-
501
- Dir.mkdir('dir')
502
- File.write('dir/List.iuml', included)
503
- File.write('dir/Sub.iuml', sub)
504
-
505
- creole_doc = <<-eos
506
- = Hello, PlantUML!
507
- Doc Writer <doc@example.com>
508
-
509
- == First Section
510
-
511
- [plantuml, format="svg"]
512
- ----
513
- !include dir/List.iuml
514
- !includesub dir/Sub.iuml!BASIC
515
- List <|.. ArrayList
516
- ----
517
- eos
518
-
519
- d = load_asciidoc creole_doc, :attributes => {'backend' => 'html5'}
520
-
521
- expect(d).to_not be_nil
522
-
523
- b = d.find { |bl| bl.context == :image }
524
- expect(b).to_not be_nil
525
-
526
- target = b.attributes['target']
527
- expect(File.exist?(target)).to be true
528
-
529
- content = File.read(target, :encoding => Encoding::UTF_8)
530
- expect(content).to_not include('!include')
531
- expect(content).to_not include('!includesub')
532
- end
533
-
534
- it 'should not resolve stdlib !include directives' do
535
- doc = <<-eos
536
- = Hello, PlantUML!
537
- Doc Writer <doc@example.com>
538
-
539
- == First Section
540
-
541
- [plantuml, format="svg"]
542
- ----
543
- @startuml
544
- !include <tupadr3/common>
545
- !include <tupadr3/font-awesome/server>
546
- !include <tupadr3/font-awesome/database>
547
-
548
- title Styling example
549
-
550
- FA_SERVER(web1,web1) #Green
551
- FA_SERVER(web2,web2) #Yellow
552
- FA_SERVER(web3,web3) #Blue
553
- FA_SERVER(web4,web4) #YellowGreen
554
-
555
- FA_DATABASE(db1,LIVE,database,white) #RoyalBlue
556
- FA_DATABASE(db2,SPARE,database) #Red
557
-
558
- db1 <--> db2
559
-
560
- web1 <--> db1
561
- web2 <--> db1
562
- web3 <--> db1
563
- web4 <--> db1
564
- @enduml
565
- ----
566
- eos
567
-
568
- d = load_asciidoc doc, :attributes => {'backend' => 'html5'}
569
-
570
- expect(d).to_not be_nil
571
-
572
- b = d.find { |bl| bl.context == :image }
573
- expect(b).to_not be_nil
574
-
575
- target = b.attributes['target']
576
- expect(File.exist?(target)).to be true
577
-
578
- content = File.read(target, :encoding => Encoding::UTF_8)
579
- expect(content).to_not include('!include')
580
- end
581
-
582
- it 'should support substitutions' do
583
- doc = <<-eos
584
- = Hello, PlantUML!
585
- :parent-class: ParentClass
586
- :child-class: ChildClass
587
-
588
- [plantuml,class-inheritence,svg,subs=attributes+]
589
- ....
590
- class {parent-class}
591
- class {child-class}
592
- {parent-class} <|-- {child-class}
593
- ....
594
- eos
595
-
596
- d = load_asciidoc doc, :attributes => {'backend' => 'html5'}
597
- expect(d).to_not be_nil
598
-
599
- b = d.find { |bl| bl.context == :image }
600
- expect(b).to_not be_nil
601
-
602
- target = b.attributes['target']
603
- expect(File.exist?(target)).to be true
604
-
605
- content = File.read(target, :encoding => Encoding::UTF_8)
606
- expect(content).to include('ParentClass')
607
- expect(content).to include('ChildClass')
608
- end
609
-
610
- it "should generate PNG images for jlatexmath blocks when format is set to 'png'" do
611
- doc = <<-eos
612
- = Hello, PlantUML!
613
- Doc Writer <doc@example.com>
614
-
615
- == First Section
616
-
617
- [plantuml,format="png"]
618
- ----
619
- @startlatex
620
- e^{i\\pi} + 1 = 0
621
- @endlatex
622
- ----
623
- eos
624
-
625
- d = load_asciidoc doc
626
- expect(d).to_not be_nil
627
-
628
- b = d.find { |bl| bl.context == :image }
629
- expect(b).to_not be_nil
630
-
631
- expect(b.content_model).to eq :empty
632
-
633
- target = b.attributes['target']
634
- expect(target).to_not be_nil
635
- expect(target).to match(/\.png$/)
636
- expect(File.exist?(target)).to be true
637
-
638
- expect(b.attributes['width']).to_not be_nil
639
- expect(b.attributes['height']).to_not be_nil
640
- end
641
-
642
- it "should generate SVG images for jlatexmath blocks when format is set to 'svg'" do
643
- doc = <<-eos
644
- = Hello, PlantUML!
645
- Doc Writer <doc@example.com>
646
-
647
- == First Section
648
-
649
- [plantuml,format="svg"]
650
- ----
651
- @startlatex
652
- e^{i\\pi} + 1 = 0
653
- @endlatex
654
- ----
655
- eos
656
-
657
- d = load_asciidoc doc
658
- expect(d).to_not be_nil
659
-
660
- b = d.find { |bl| bl.context == :image }
661
- expect(b).to_not be_nil
662
-
663
- expect(b.content_model).to eq :empty
664
-
665
- target = b.attributes['target']
666
- expect(target).to_not be_nil
667
- expect(target).to match(/\.svg$/)
668
- expect(File.exist?(target)).to be true
669
- end
670
-
671
- it "should generate PNG images for diagrams with latex tags when format is set to 'png'" do
672
- doc = <<-eos
673
- = Hello, PlantUML!
674
- Doc Writer <doc@example.com>
675
-
676
- == First Section
677
-
678
- [plantuml,format="png"]
679
- ----
680
- :<latex>P(y|\\mathbf{x}) \\mbox{ or } f(\\mathbf{x})+\\epsilon</latex>;
681
- ----
682
- eos
683
-
684
- d = load_asciidoc doc
685
- expect(d).to_not be_nil
686
-
687
- b = d.find { |bl| bl.context == :image }
688
- expect(b).to_not be_nil
689
-
690
- expect(b.content_model).to eq :empty
691
-
692
- target = b.attributes['target']
693
- expect(target).to_not be_nil
694
- expect(target).to match(/\.png$/)
695
- expect(File.exist?(target)).to be true
696
-
697
- expect(b.attributes['width']).to_not be_nil
698
- expect(b.attributes['height']).to_not be_nil
699
- end
700
-
701
- it "should generate SVG images for diagrams with latex tags when format is set to 'svg'" do
702
- doc = <<-eos
703
- = Hello, PlantUML!
704
- Doc Writer <doc@example.com>
705
-
706
- == First Section
707
-
708
- [plantuml,format="svg"]
709
- ----
710
- :<latex>P(y|\\mathbf{x}) \\mbox{ or } f(\\mathbf{x})+\\epsilon</latex>;
711
- ----
712
- eos
713
-
714
- d = load_asciidoc doc
715
- expect(d).to_not be_nil
716
-
717
- b = d.find { |bl| bl.context == :image }
718
- expect(b).to_not be_nil
719
-
720
- expect(b.content_model).to eq :empty
721
-
722
- target = b.attributes['target']
723
- expect(target).to_not be_nil
724
- expect(target).to match(/\.svg$/)
725
- expect(File.exist?(target)).to be true
726
-
727
- expect(b.attributes['width']).to_not be_nil
728
- expect(b.attributes['height']).to_not be_nil
729
- end
730
-
731
- it "should report syntax errors" do
732
- doc = <<-eos
733
- = Hello, PlantUML!
734
- Doc Writer <doc@example.com>
735
-
736
- == First Section
737
-
738
- [plantuml,format="svg"]
739
- ----
740
- Bob; Alice; foo
741
- ----
742
- eos
743
-
744
- expect {
745
- load_asciidoc doc
746
- }.to raise_error(/syntax error/i)
747
- end
748
-
749
- it "should support complex preprocessor usage" do
750
- doc = <<-eos
751
- = Hello, PlantUML!
752
- Doc Writer <doc@example.com>
753
-
754
- == First Section
755
-
756
- [plantuml,format="png"]
757
- ----
758
- @startuml
759
- !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
760
-
761
- !define DEVICONS https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/devicons
762
- !define FONTAWESOME https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/font-awesome-5
763
- !include DEVICONS/angular.puml
764
- !include DEVICONS/java.puml
765
- !include DEVICONS/msql_server.puml
766
- !include FONTAWESOME/users.puml
767
-
768
- LAYOUT_WITH_LEGEND()
769
-
770
- Person(user, "Customer", "People that need products", "users")
771
- Container(spa, "SPA", "angular", "The main interface that the customer interacts with", "angular")
772
- Container(api, "API", "java", "Handles all business logic", "java")
773
- ContainerDb(db, "Database", "Microsoft SQL", "Holds product, order and invoice information", "msql_server")
774
-
775
- !$protocol ?= "https"
776
-
777
- Rel(user, spa, "Uses", $protocol)
778
- Rel(spa, api, "Uses", "https")
779
- Rel_R(api, db, "Reads/Writes")
780
- @enduml
781
- ----
782
- eos
783
-
784
- d = load_asciidoc doc
785
- expect(d).to_not be_nil
786
-
787
- b = d.find { |bl| bl.context == :image }
788
- expect(b).to_not be_nil
789
-
790
- expect(b.content_model).to eq :empty
791
-
792
- target = b.attributes['target']
793
- expect(target).to_not be_nil
794
- expect(target).to match(/\.png$/)
795
- expect(File.exist?(target)).to be true
796
-
797
- expect(b.attributes['width']).to_not be_nil
798
- expect(b.attributes['height']).to_not be_nil
799
- end
800
- end