asciidoctor-diagram 1.2.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.adoc +262 -7
  3. data/README.adoc +463 -40
  4. data/README_zh-CN.adoc +336 -0
  5. data/Rakefile +3 -7
  6. data/examples/features.adoc +2 -2
  7. data/images/asciidoctor-diagram-classes.png +0 -0
  8. data/images/asciidoctor-diagram-process.png +0 -0
  9. data/lib/asciidoctor-diagram/a2s/converter.rb +55 -0
  10. data/lib/asciidoctor-diagram/a2s/extension.rb +14 -0
  11. data/lib/asciidoctor-diagram/a2s.rb +7 -0
  12. data/lib/asciidoctor-diagram/blockdiag/converter.rb +37 -0
  13. data/lib/asciidoctor-diagram/blockdiag/extension.rb +11 -11
  14. data/lib/asciidoctor-diagram/blockdiag.rb +5 -4
  15. data/lib/asciidoctor-diagram/bpmn/converter.rb +62 -0
  16. data/lib/asciidoctor-diagram/bpmn/extension.rb +14 -0
  17. data/lib/asciidoctor-diagram/bpmn.rb +7 -0
  18. data/lib/asciidoctor-diagram/diagram_converter.rb +19 -0
  19. data/lib/asciidoctor-diagram/diagram_processor.rb +320 -0
  20. data/lib/asciidoctor-diagram/diagram_source.rb +275 -0
  21. data/lib/asciidoctor-diagram/ditaa/converter.rb +86 -0
  22. data/lib/asciidoctor-diagram/ditaa/extension.rb +6 -28
  23. data/lib/asciidoctor-diagram/ditaa.rb +3 -4
  24. data/lib/asciidoctor-diagram/erd/converter.rb +31 -0
  25. data/lib/asciidoctor-diagram/erd/extension.rb +14 -0
  26. data/lib/asciidoctor-diagram/erd.rb +7 -0
  27. data/lib/asciidoctor-diagram/gnuplot/converter.rb +63 -0
  28. data/lib/asciidoctor-diagram/gnuplot/extension.rb +14 -0
  29. data/lib/asciidoctor-diagram/gnuplot.rb +7 -0
  30. data/lib/asciidoctor-diagram/graphviz/converter.rb +32 -0
  31. data/lib/asciidoctor-diagram/graphviz/extension.rb +8 -10
  32. data/lib/asciidoctor-diagram/graphviz.rb +3 -4
  33. data/lib/asciidoctor-diagram/http/server.rb +127 -0
  34. data/lib/asciidoctor-diagram/lilypond/converter.rb +54 -0
  35. data/lib/asciidoctor-diagram/lilypond/extension.rb +14 -0
  36. data/lib/asciidoctor-diagram/lilypond.rb +7 -0
  37. data/lib/asciidoctor-diagram/meme/converter.rb +122 -0
  38. data/lib/asciidoctor-diagram/meme/extension.rb +28 -0
  39. data/lib/asciidoctor-diagram/meme.rb +6 -0
  40. data/lib/asciidoctor-diagram/mermaid/converter.rb +178 -0
  41. data/lib/asciidoctor-diagram/mermaid/extension.rb +14 -0
  42. data/lib/asciidoctor-diagram/mermaid.rb +7 -0
  43. data/lib/asciidoctor-diagram/msc/converter.rb +35 -0
  44. data/lib/asciidoctor-diagram/msc/extension.rb +14 -0
  45. data/lib/asciidoctor-diagram/msc.rb +7 -0
  46. data/lib/asciidoctor-diagram/nomnoml/converter.rb +25 -0
  47. data/lib/asciidoctor-diagram/nomnoml/extension.rb +14 -0
  48. data/lib/asciidoctor-diagram/nomnoml.rb +7 -0
  49. data/lib/asciidoctor-diagram/plantuml/converter.rb +115 -0
  50. data/lib/asciidoctor-diagram/plantuml/extension.rb +14 -20
  51. data/lib/asciidoctor-diagram/plantuml.rb +3 -5
  52. data/lib/asciidoctor-diagram/salt.rb +7 -0
  53. data/lib/asciidoctor-diagram/shaape/converter.rb +25 -0
  54. data/lib/asciidoctor-diagram/shaape/extension.rb +9 -11
  55. data/lib/asciidoctor-diagram/shaape.rb +3 -5
  56. data/lib/asciidoctor-diagram/smcat/converter.rb +44 -0
  57. data/lib/asciidoctor-diagram/smcat/extension.rb +14 -0
  58. data/lib/asciidoctor-diagram/smcat.rb +7 -0
  59. data/lib/asciidoctor-diagram/svgbob/converter.rb +25 -0
  60. data/lib/asciidoctor-diagram/svgbob/extension.rb +14 -0
  61. data/lib/asciidoctor-diagram/svgbob.rb +7 -0
  62. data/lib/asciidoctor-diagram/syntrax/converter.rb +55 -0
  63. data/lib/asciidoctor-diagram/syntrax/extension.rb +14 -0
  64. data/lib/asciidoctor-diagram/syntrax.rb +7 -0
  65. data/lib/asciidoctor-diagram/tikz/converter.rb +56 -0
  66. data/lib/asciidoctor-diagram/tikz/extension.rb +14 -0
  67. data/lib/asciidoctor-diagram/tikz.rb +7 -0
  68. data/lib/asciidoctor-diagram/umlet/converter.rb +24 -0
  69. data/lib/asciidoctor-diagram/umlet/extension.rb +14 -0
  70. data/lib/asciidoctor-diagram/umlet.rb +7 -0
  71. data/lib/asciidoctor-diagram/util/binaryio.rb +20 -0
  72. data/lib/asciidoctor-diagram/util/cli.rb +81 -0
  73. data/lib/asciidoctor-diagram/util/cli_generator.rb +73 -22
  74. data/lib/asciidoctor-diagram/util/gif.rb +21 -0
  75. data/lib/asciidoctor-diagram/util/java.rb +95 -1
  76. data/lib/asciidoctor-diagram/util/java_jruby.rb +14 -20
  77. data/lib/asciidoctor-diagram/util/java_socket.rb +175 -0
  78. data/lib/asciidoctor-diagram/util/pdf.rb +10 -0
  79. data/lib/asciidoctor-diagram/util/platform.rb +97 -0
  80. data/lib/asciidoctor-diagram/util/png.rb +1 -0
  81. data/lib/asciidoctor-diagram/util/svg.rb +4 -3
  82. data/lib/asciidoctor-diagram/util/which.rb +15 -9
  83. data/lib/asciidoctor-diagram/vega/converter.rb +47 -0
  84. data/lib/asciidoctor-diagram/vega/extension.rb +14 -0
  85. data/lib/asciidoctor-diagram/vega.rb +10 -0
  86. data/lib/asciidoctor-diagram/version.rb +1 -1
  87. data/lib/asciidoctor-diagram/wavedrom/converter.rb +50 -0
  88. data/lib/asciidoctor-diagram/wavedrom/extension.rb +14 -0
  89. data/lib/asciidoctor-diagram/wavedrom.rb +7 -0
  90. data/lib/asciidoctor-diagram.rb +22 -5
  91. data/lib/batik-all-1.10.jar +0 -0
  92. data/lib/ditaa-1.3.14.jar +0 -0
  93. data/lib/ditaamini-0.12.jar +0 -0
  94. data/lib/jlatexmath-minimal-1.0.5.jar +0 -0
  95. data/lib/plantuml-1.3.14.jar +0 -0
  96. data/lib/plantuml.jar +0 -0
  97. data/lib/server-1.3.14.jar +0 -0
  98. data/spec/a2s_spec.rb +167 -0
  99. data/spec/blockdiag_spec.rb +55 -24
  100. data/spec/bpmn-example.xml +44 -0
  101. data/spec/bpmn_spec.rb +96 -0
  102. data/spec/ditaa_spec.rb +150 -15
  103. data/spec/erd_spec.rb +289 -0
  104. data/spec/gnuplot_spec.rb +478 -0
  105. data/spec/graphviz_spec.rb +20 -20
  106. data/spec/lilypond_spec.rb +151 -0
  107. data/spec/man.jpg +0 -0
  108. data/spec/meme_spec.rb +67 -0
  109. data/spec/mermaid_spec.rb +336 -0
  110. data/spec/msc_spec.rb +230 -0
  111. data/spec/nomnoml_spec.rb +170 -0
  112. data/spec/plantuml_spec.rb +895 -54
  113. data/spec/shaape_spec.rb +25 -24
  114. data/spec/smcat_spec.rb +164 -0
  115. data/spec/svgbob_spec.rb +167 -0
  116. data/spec/syntrax_spec.rb +228 -0
  117. data/spec/test_helper.rb +88 -9
  118. data/spec/tikz_spec.rb +127 -0
  119. data/spec/umlet_spec.rb +85 -0
  120. data/spec/vega_spec.rb +241 -0
  121. data/spec/wavedrom_spec.rb +214 -0
  122. metadata +130 -35
  123. data/lib/asciidoctor-diagram/plantuml/generator.rb +0 -46
  124. data/lib/asciidoctor-diagram/util/diagram.rb +0 -220
  125. data/lib/asciidoctor-diagram/util/java_rjb.rb +0 -90
  126. data/lib/ditaamini0_9.jar +0 -0
@@ -0,0 +1,478 @@
1
+ require_relative 'test_helper'
2
+
3
+ code = <<-eos
4
+ plot [0:5][0:20] x**2 title 'O(n^2)'
5
+ eos
6
+
7
+ describe Asciidoctor::Diagram::GnuplotBlockMacroProcessor do
8
+ it "should generate PNG images when format is set to 'png'" do
9
+ File.write('gnuplot.txt', code)
10
+
11
+ doc = <<-eos
12
+ = Hello, Gnuplot!
13
+ Doc Writer <doc@example.com>
14
+
15
+ == First Section
16
+
17
+ gnuplot::gnuplot.txt[format="png"]
18
+ eos
19
+
20
+ d = load_asciidoc doc
21
+ expect(d).to_not be_nil
22
+
23
+ b = d.find { |bl| bl.context == :image }
24
+ expect(b).to_not be_nil
25
+
26
+ expect(b.content_model).to eq :empty
27
+
28
+ target = b.attributes['target']
29
+ expect(target).to_not be_nil
30
+ expect(target).to match(/\.png$/)
31
+ expect(File.exist?(target)).to be true
32
+
33
+ expect(b.attributes['width']).to_not be_nil
34
+ expect(b.attributes['height']).to_not be_nil
35
+ end
36
+
37
+
38
+ it "should generate SVG images when format is set to 'svg'" do
39
+ File.write('gnuplot.txt', code)
40
+
41
+ doc = <<-eos
42
+ = Hello, Gnuplot!
43
+ Doc Writer <doc@example.com>
44
+
45
+ == First Section
46
+
47
+ gnuplot::gnuplot.txt[format="svg"]
48
+ eos
49
+
50
+ d = load_asciidoc doc
51
+ expect(d).to_not be_nil
52
+
53
+ b = d.find { |bl| bl.context == :image }
54
+ expect(b).to_not be_nil
55
+
56
+ expect(b.content_model).to eq :empty
57
+
58
+ target = b.attributes['target']
59
+ expect(target).to_not be_nil
60
+ expect(target).to match(/\.svg/)
61
+ expect(File.exist?(target)).to be true
62
+
63
+ expect(b.attributes['width']).to_not be_nil
64
+ expect(b.attributes['height']).to_not be_nil
65
+ end
66
+
67
+ it "should generate GIF images when format is set to 'gif'" do
68
+ File.write('gnuplot.txt', code)
69
+
70
+ doc = <<-eos
71
+ = Hello, Gnuplot!
72
+ Doc Writer <doc@example.com>
73
+
74
+ == First Section
75
+
76
+ gnuplot::gnuplot.txt[format="gif"]
77
+ eos
78
+
79
+ d = load_asciidoc doc
80
+ expect(d).to_not be_nil
81
+
82
+ b = d.find { |bl| bl.context == :image }
83
+ expect(b).to_not be_nil
84
+
85
+ expect(b.content_model).to eq :empty
86
+
87
+ target = b.attributes['target']
88
+ expect(target).to_not be_nil
89
+ expect(target).to match(/\.gif$/)
90
+ expect(File.exist?(target)).to be true
91
+
92
+ expect(b.attributes['width']).to_not be_nil
93
+ expect(b.attributes['height']).to_not be_nil
94
+ end
95
+
96
+
97
+ it "should generate literal blocks when format is set to 'txt'" do
98
+ doc = <<-eos
99
+ = Hello, Gnuplot!
100
+ Doc Writer <doc@example.com>
101
+
102
+ == First Section
103
+
104
+ [gnuplot, format="txt"]
105
+ ----
106
+ #{code}
107
+ ----
108
+ eos
109
+
110
+ d = load_asciidoc doc
111
+ expect(d).to_not be_nil
112
+
113
+ b = d.find { |bl| bl.context == :literal }
114
+ expect(b).to_not be_nil
115
+
116
+ expect(b.content_model).to eq :verbatim
117
+
118
+ expect(b.attributes['target']).to be_nil
119
+ end
120
+
121
+
122
+ end
123
+
124
+ describe Asciidoctor::Diagram::GnuplotBlockProcessor do
125
+ it "should generate PNG images when format is set to 'png'" do
126
+ doc = <<-eos
127
+ = Hello, Gnuplot!
128
+ Doc Writer <doc@example.com>
129
+
130
+ == First Section
131
+
132
+ [gnuplot, format="png"]
133
+ ----
134
+ #{code}
135
+ ----
136
+ eos
137
+
138
+ d = load_asciidoc doc
139
+ expect(d).to_not be_nil
140
+
141
+ b = d.find { |bl| bl.context == :image }
142
+ expect(b).to_not be_nil
143
+
144
+ expect(b.content_model).to eq :empty
145
+
146
+ target = b.attributes['target']
147
+ expect(target).to_not be_nil
148
+ expect(target).to match(/\.png$/)
149
+ expect(File.exist?(target)).to be true
150
+
151
+ expect(b.attributes['width']).to_not be_nil
152
+ expect(b.attributes['height']).to_not be_nil
153
+ end
154
+
155
+ it "should generate SVG images when format is set to 'svg'" do
156
+ doc = <<-eos
157
+ = Hello, Gnuplot!
158
+ Doc Writer <doc@example.com>
159
+
160
+ == First Section
161
+
162
+ [gnuplot, format="svg"]
163
+ ----
164
+ #{code}
165
+ ----
166
+ eos
167
+
168
+ d = load_asciidoc doc
169
+ expect(d).to_not be_nil
170
+
171
+ b = d.find { |bl| bl.context == :image }
172
+ expect(b).to_not be_nil
173
+
174
+ expect(b.content_model).to eq :empty
175
+
176
+ target = b.attributes['target']
177
+ expect(target).to_not be_nil
178
+ expect(target).to match(/\.svg/)
179
+ expect(File.exist?(target)).to be true
180
+
181
+ expect(b.attributes['width']).to_not be_nil
182
+ expect(b.attributes['height']).to_not be_nil
183
+ end
184
+
185
+ it "should raise an error when when format is set to an invalid value" do
186
+ doc = <<-eos
187
+ = Hello, Gnuplot!
188
+ Doc Writer <doc@example.com>
189
+
190
+ == First Section
191
+
192
+ [gnuplot, format="foobar"]
193
+ ----
194
+ ----
195
+ eos
196
+
197
+ expect { load_asciidoc doc }.to raise_error(/support.*format/i)
198
+ end
199
+
200
+ it "should not regenerate images when source has not changed" do
201
+ File.write('gnuplot.txt', code)
202
+
203
+ doc = <<-eos
204
+ = Hello, Gnuplot!
205
+ Doc Writer <doc@example.com>
206
+
207
+ == First Section
208
+
209
+ gnuplot::gnuplot.txt
210
+
211
+ [gnuplot, format="png"]
212
+ ----
213
+ #{code}
214
+ ----
215
+ eos
216
+
217
+ d = load_asciidoc doc
218
+ b = d.find { |bl| bl.context == :image }
219
+ expect(b).to_not be_nil
220
+ target = b.attributes['target']
221
+ mtime1 = File.mtime(target)
222
+
223
+ sleep 1
224
+
225
+ d = load_asciidoc doc
226
+
227
+ mtime2 = File.mtime(target)
228
+
229
+ expect(mtime2).to eq mtime1
230
+ end
231
+
232
+ it "should handle two block macros with the same source" do
233
+ File.write('gnuplot.txt', code)
234
+
235
+ doc = <<-eos
236
+ = Hello, Gnuplot!
237
+ Doc Writer <doc@example.com>
238
+
239
+ == First Section
240
+
241
+ gnuplot::gnuplot.txt[]
242
+ gnuplot::gnuplot.txt[]
243
+ eos
244
+
245
+ load_asciidoc doc
246
+ expect(File.exist?('gnuplot.png')).to be true
247
+ end
248
+
249
+ it "should respect target attribute in block macros" do
250
+ File.write('gnuplot.txt', code)
251
+
252
+ doc = <<-eos
253
+ = Hello, Gnuplot!
254
+ Doc Writer <doc@example.com>
255
+
256
+ == First Section
257
+
258
+ gnuplot::gnuplot.txt["foobar"]
259
+ gnuplot::gnuplot.txt["foobaz"]
260
+ eos
261
+
262
+ load_asciidoc doc
263
+ expect(File.exist?('foobar.png')).to be true
264
+ expect(File.exist?('foobaz.png')).to be true
265
+ expect(File.exist?('gnuplot.png')).to be false
266
+ end
267
+ it "should generate images with user defined size" do
268
+ doc = <<-eos
269
+ = Hello, Gnuplot!
270
+ Doc Writer <doc@example.com>
271
+
272
+ == First Section
273
+
274
+ [gnuplot, format="png",width="800", height="600"]
275
+ ----
276
+ #{code}
277
+ ----
278
+ eos
279
+
280
+ d = load_asciidoc doc
281
+ expect(d).to_not be_nil
282
+
283
+ b = d.find { |bl| bl.context == :image }
284
+ expect(b).to_not be_nil
285
+
286
+ expect(b.content_model).to eq :empty
287
+
288
+ target = b.attributes['target']
289
+ expect(target).to_not be_nil
290
+ expect(target).to match(/\.png$/)
291
+ expect(File.exist?(target)).to be true
292
+
293
+ expect(b.attributes['width']).to_not be_nil
294
+ expect(b.attributes['height']).to_not be_nil
295
+ end
296
+
297
+ it "should generate nocrop/notrasparent images" do
298
+ doc = <<-eos
299
+ = Hello, Gnuplot!
300
+ Doc Writer <doc@example.com>
301
+
302
+ == First Section
303
+
304
+ [gnuplot, format="png", crop=false, transparent=false]
305
+ ----
306
+ #{code}
307
+ ----
308
+ eos
309
+
310
+ d = load_asciidoc doc
311
+ expect(d).to_not be_nil
312
+
313
+ b = d.find { |bl| bl.context == :image }
314
+ expect(b).to_not be_nil
315
+
316
+ expect(b.content_model).to eq :empty
317
+
318
+ target = b.attributes['target']
319
+ expect(target).to_not be_nil
320
+ expect(target).to match(/\.png$/)
321
+ expect(File.exist?(target)).to be true
322
+
323
+ expect(b.attributes['width']).to_not be_nil
324
+ expect(b.attributes['height']).to_not be_nil
325
+ end
326
+
327
+ it "should generate crop/trasparent images" do
328
+ doc = <<-eos
329
+ = Hello, Gnuplot!
330
+ Doc Writer <doc@example.com>
331
+
332
+ == First Section
333
+
334
+ [gnuplot, format="png", crop=true, transparent=true]
335
+ ----
336
+ #{code}
337
+ ----
338
+ eos
339
+
340
+ d = load_asciidoc doc
341
+ expect(d).to_not be_nil
342
+
343
+ b = d.find { |bl| bl.context == :image }
344
+ expect(b).to_not be_nil
345
+
346
+ expect(b.content_model).to eq :empty
347
+
348
+ target = b.attributes['target']
349
+ expect(target).to_not be_nil
350
+ expect(target).to match(/\.png$/)
351
+ expect(File.exist?(target)).to be true
352
+
353
+ expect(b.attributes['width']).to_not be_nil
354
+ expect(b.attributes['height']).to_not be_nil
355
+ end
356
+
357
+ it "should generate image with font name" do
358
+ doc = <<-eos
359
+ = Hello, Gnuplot!
360
+ Doc Writer <doc@example.com>
361
+
362
+ == First Section
363
+
364
+ [gnuplot, format="png", font="Arial"]
365
+ ----
366
+ #{code}
367
+ ----
368
+ eos
369
+
370
+ d = load_asciidoc doc
371
+ expect(d).to_not be_nil
372
+
373
+ b = d.find { |bl| bl.context == :image }
374
+ expect(b).to_not be_nil
375
+
376
+ expect(b.content_model).to eq :empty
377
+
378
+ target = b.attributes['target']
379
+ expect(target).to_not be_nil
380
+ expect(target).to match(/\.png$/)
381
+ expect(File.exist?(target)).to be true
382
+
383
+ expect(b.attributes['width']).to_not be_nil
384
+ expect(b.attributes['height']).to_not be_nil
385
+ end
386
+
387
+ it "should generate image with font name and size" do
388
+ doc = <<-eos
389
+ = Hello, Gnuplot!
390
+ Doc Writer <doc@example.com>
391
+
392
+ == First Section
393
+
394
+ [gnuplot, format="png", font="Arial,11"]
395
+ ----
396
+ #{code}
397
+ ----
398
+ eos
399
+
400
+ d = load_asciidoc doc
401
+ expect(d).to_not be_nil
402
+
403
+ b = d.find { |bl| bl.context == :image }
404
+ expect(b).to_not be_nil
405
+
406
+ expect(b.content_model).to eq :empty
407
+
408
+ target = b.attributes['target']
409
+ expect(target).to_not be_nil
410
+ expect(target).to match(/\.png$/)
411
+ expect(File.exist?(target)).to be true
412
+
413
+ expect(b.attributes['width']).to_not be_nil
414
+ expect(b.attributes['height']).to_not be_nil
415
+ end
416
+
417
+ it "should generate image with font name and scale" do
418
+ doc = <<-eos
419
+ = Hello, Gnuplot!
420
+ Doc Writer <doc@example.com>
421
+
422
+ == First Section
423
+
424
+ [gnuplot, format="png", font="Arial", scale="0.5"]
425
+ ----
426
+ #{code}
427
+ ----
428
+ eos
429
+
430
+ d = load_asciidoc doc
431
+ expect(d).to_not be_nil
432
+
433
+ b = d.find { |bl| bl.context == :image }
434
+ expect(b).to_not be_nil
435
+
436
+ expect(b.content_model).to eq :empty
437
+
438
+ target = b.attributes['target']
439
+ expect(target).to_not be_nil
440
+ expect(target).to match(/\.png$/)
441
+ expect(File.exist?(target)).to be true
442
+
443
+ expect(b.attributes['width']).to_not be_nil
444
+ expect(b.attributes['height']).to_not be_nil
445
+ end
446
+
447
+ it %(should generate image with font background="red") do
448
+ doc = <<-eos
449
+ = Hello, Gnuplot!
450
+ Doc Writer <doc@example.com>
451
+
452
+ == First Section
453
+
454
+ [gnuplot, format="png", background="red"]
455
+ ----
456
+ #{code}
457
+ ----
458
+ eos
459
+
460
+ d = load_asciidoc doc
461
+ expect(d).to_not be_nil
462
+
463
+ b = d.find { |bl| bl.context == :image }
464
+ expect(b).to_not be_nil
465
+
466
+ expect(b.content_model).to eq :empty
467
+
468
+ target = b.attributes['target']
469
+ expect(target).to_not be_nil
470
+ expect(target).to match(/\.png$/)
471
+ expect(File.exist?(target)).to be true
472
+
473
+ expect(b.attributes['width']).to_not be_nil
474
+ expect(b.attributes['height']).to_not be_nil
475
+ end
476
+
477
+
478
+ end
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- describe Asciidoctor::Diagram::GraphvizBlockMacro do
3
+ describe Asciidoctor::Diagram::GraphvizBlockMacroProcessor do
4
4
  it "should generate PNG images when format is set to 'png'" do
5
5
  code = <<-eos
6
6
  digraph foo {
@@ -24,25 +24,25 @@ Doc Writer <doc@example.com>
24
24
  graphviz::graphviz.txt[format="png"]
25
25
  eos
26
26
 
27
- d = Asciidoctor.load StringIO.new(doc)
27
+ d = load_asciidoc doc
28
28
  expect(d).to_not be_nil
29
29
 
30
- b = d.find { |b| b.context == :image }
30
+ b = d.find { |bl| bl.context == :image }
31
31
  expect(b).to_not be_nil
32
32
 
33
33
  expect(b.content_model).to eq :empty
34
34
 
35
35
  target = b.attributes['target']
36
36
  expect(target).to_not be_nil
37
- expect(target).to match /\.png$/
38
- expect(File.exists?(target)).to be true
37
+ expect(target).to match(/\.png$/)
38
+ expect(File.exist?(target)).to be true
39
39
 
40
40
  expect(b.attributes['width']).to_not be_nil
41
41
  expect(b.attributes['height']).to_not be_nil
42
42
  end
43
43
  end
44
44
 
45
- describe Asciidoctor::Diagram::GraphvizBlock do
45
+ describe Asciidoctor::Diagram::GraphvizBlockProcessor do
46
46
  it "should generate PNG images when format is set to 'png'" do
47
47
  doc = <<-eos
48
48
  = Hello, graphviz!
@@ -63,18 +63,18 @@ digraph foo {
63
63
  ----
64
64
  eos
65
65
 
66
- d = Asciidoctor.load StringIO.new(doc)
66
+ d = load_asciidoc doc
67
67
  expect(d).to_not be_nil
68
68
 
69
- b = d.find { |b| b.context == :image }
69
+ b = d.find { |bl| bl.context == :image }
70
70
  expect(b).to_not be_nil
71
71
 
72
72
  expect(b.content_model).to eq :empty
73
73
 
74
74
  target = b.attributes['target']
75
75
  expect(target).to_not be_nil
76
- expect(target).to match /\.png$/
77
- expect(File.exists?(target)).to be true
76
+ expect(target).to match(/\.png$/)
77
+ expect(File.exist?(target)).to be true
78
78
 
79
79
  expect(b.attributes['width']).to_not be_nil
80
80
  expect(b.attributes['height']).to_not be_nil
@@ -100,18 +100,18 @@ digraph foo {
100
100
  ----
101
101
  eos
102
102
 
103
- d = Asciidoctor.load StringIO.new(doc)
103
+ d = load_asciidoc doc
104
104
  expect(d).to_not be_nil
105
105
 
106
- b = d.find { |b| b.context == :image }
106
+ b = d.find { |bl| bl.context == :image }
107
107
  expect(b).to_not be_nil
108
108
 
109
109
  expect(b.content_model).to eq :empty
110
110
 
111
111
  target = b.attributes['target']
112
112
  expect(target).to_not be_nil
113
- expect(target).to match /\.svg$/
114
- expect(File.exists?(target)).to be true
113
+ expect(target).to match(/\.svg$/)
114
+ expect(File.exist?(target)).to be true
115
115
 
116
116
  expect(b.attributes['width']).to_not be_nil
117
117
  expect(b.attributes['height']).to_not be_nil
@@ -129,31 +129,31 @@ Doc Writer <doc@example.com>
129
129
  ----
130
130
  eos
131
131
 
132
- expect { Asciidoctor.load StringIO.new(doc) }.to raise_error /support.*format/i
132
+ expect { load_asciidoc doc }.to raise_error(/support.*format/i)
133
133
  end
134
134
 
135
- it "should support single line digraphs" do
135
+ it "should support neato layout engine" do
136
136
  doc = <<-eos
137
137
  = Hello, graphviz!
138
138
  Doc Writer <doc@example.com>
139
139
 
140
140
  == First Section
141
141
 
142
- [graphviz]
142
+ [graphviz, layout=neato]
143
143
  ----
144
144
  digraph g { rankdir=LR; Text->Graphviz->Image }
145
145
  ----
146
146
  eos
147
147
 
148
- d = Asciidoctor.load StringIO.new(doc)
148
+ d = load_asciidoc doc
149
149
  expect(d).to_not be_nil
150
150
 
151
- b = d.find { |b| b.context == :image }
151
+ b = d.find { |bl| bl.context == :image }
152
152
  expect(b).to_not be_nil
153
153
 
154
154
  expect(b.content_model).to eq :empty
155
155
 
156
156
  target = b.attributes['target']
157
- expect(File.exists?(target)).to be true
157
+ expect(File.exist?(target)).to be true
158
158
  end
159
159
  end