asciidoctor-diagram 1.0.1 → 1.1.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.
- checksums.yaml +4 -4
- data/CHANGELOG.adoc +22 -0
- data/README.adoc +7 -6
- data/examples/Gemfile +3 -0
- data/examples/README.adoc +6 -0
- data/examples/build_example.rb +9 -0
- data/examples/design.adoc +78 -0
- data/examples/features.adoc +164 -0
- data/lib/asciidoctor-diagram.rb +1 -0
- data/lib/asciidoctor-diagram/ditaa.rb +1 -0
- data/lib/asciidoctor-diagram/ditaa/extension.rb +23 -50
- data/lib/asciidoctor-diagram/ditaa/generator.rb +31 -0
- data/lib/asciidoctor-diagram/graphviz.rb +8 -0
- data/lib/asciidoctor-diagram/graphviz/extension.rb +41 -0
- data/lib/asciidoctor-diagram/plantuml.rb +1 -0
- data/lib/asciidoctor-diagram/plantuml/extension.rb +33 -71
- data/lib/asciidoctor-diagram/plantuml/generator.rb +50 -0
- data/lib/asciidoctor-diagram/{binaryio.rb → util/binaryio.rb} +0 -0
- data/lib/asciidoctor-diagram/util/diagram.rb +198 -0
- data/lib/asciidoctor-diagram/{java.rb → util/java.rb} +0 -0
- data/lib/asciidoctor-diagram/{java_jruby.rb → util/java_jruby.rb} +0 -0
- data/lib/asciidoctor-diagram/{java_rjb.rb → util/java_rjb.rb} +0 -0
- data/lib/asciidoctor-diagram/{png.rb → util/png.rb} +0 -0
- data/lib/asciidoctor-diagram/util/svg.rb +46 -0
- data/lib/asciidoctor-diagram/version.rb +1 -1
- data/spec/ditaa_spec.rb +65 -0
- data/spec/graphviz_spec.rb +134 -0
- data/spec/plantuml_spec.rb +38 -0
- data/spec/test_helper.rb +1 -0
- metadata +34 -28
- data/.gitignore +0 -19
- data/.travis.yml +0 -10
- data/Gemfile +0 -4
- data/asciidoctor-diagram.gemspec +0 -30
- data/ditaamini-license.txt +0 -165
- data/lib/asciidoctor-diagram/diagram.rb +0 -111
- data/lib/asciidoctor-diagram/svg.rb +0 -18
- data/plantuml-license.txt +0 -202
data/spec/ditaa_spec.rb
CHANGED
@@ -1,5 +1,48 @@
|
|
1
1
|
require_relative 'test_helper'
|
2
2
|
|
3
|
+
describe Asciidoctor::Diagram::DitaaBlockMacro do
|
4
|
+
it "should generate PNG images when format is set to 'png'" do
|
5
|
+
code = <<-eos
|
6
|
+
+--------+ +-------+ +-------+
|
7
|
+
| | --+ ditaa +--> | |
|
8
|
+
| Text | +-------+ |diagram|
|
9
|
+
|Document| |!magic!| | |
|
10
|
+
| {d}| | | | |
|
11
|
+
+---+----+ +-------+ +-------+
|
12
|
+
: ^
|
13
|
+
| Lots of work |
|
14
|
+
+-------------------------+
|
15
|
+
eos
|
16
|
+
|
17
|
+
File.write('ditaa.txt', code)
|
18
|
+
|
19
|
+
doc = <<-eos
|
20
|
+
= Hello, PlantUML!
|
21
|
+
Doc Writer <doc@example.com>
|
22
|
+
|
23
|
+
== First Section
|
24
|
+
|
25
|
+
ditaa::ditaa.txt[format="png"]
|
26
|
+
eos
|
27
|
+
|
28
|
+
d = Asciidoctor.load StringIO.new(doc)
|
29
|
+
expect(d).to_not be_nil
|
30
|
+
|
31
|
+
b = d.find { |b| b.context == :image }
|
32
|
+
expect(b).to_not be_nil
|
33
|
+
|
34
|
+
expect(b.content_model).to eq :empty
|
35
|
+
|
36
|
+
target = b.attributes['target']
|
37
|
+
expect(target).to_not be_nil
|
38
|
+
expect(target).to match /\.png$/
|
39
|
+
expect(File.exists?(target)).to be_true
|
40
|
+
|
41
|
+
expect(b.attributes['width']).to_not be_nil
|
42
|
+
expect(b.attributes['height']).to_not be_nil
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
3
46
|
describe Asciidoctor::Diagram::DitaaBlock do
|
4
47
|
it "should generate PNG images when format is set to 'png'" do
|
5
48
|
doc = <<-eos
|
@@ -53,4 +96,26 @@ Doc Writer <doc@example.com>
|
|
53
96
|
|
54
97
|
expect { Asciidoctor.load StringIO.new(doc) }.to raise_error /support.*format/i
|
55
98
|
end
|
99
|
+
|
100
|
+
it "should use a default format when none was given" do
|
101
|
+
doc = <<-eos
|
102
|
+
= Hello, PlantUML!
|
103
|
+
Doc Writer <doc@example.com>
|
104
|
+
|
105
|
+
== First Section
|
106
|
+
|
107
|
+
[ditaa]
|
108
|
+
----
|
109
|
+
----
|
110
|
+
eos
|
111
|
+
|
112
|
+
d = Asciidoctor.load StringIO.new(doc)
|
113
|
+
expect(d).to_not be_nil
|
114
|
+
|
115
|
+
b = d.find { |b| b.context == :image }
|
116
|
+
expect(b).to_not be_nil
|
117
|
+
target = b.attributes['target']
|
118
|
+
expect(target).to match /\.png$/
|
119
|
+
expect(File.exists?(target)).to be_true
|
120
|
+
end
|
56
121
|
end
|
@@ -0,0 +1,134 @@
|
|
1
|
+
require_relative 'test_helper'
|
2
|
+
|
3
|
+
describe Asciidoctor::Diagram::GraphvizBlockMacro do
|
4
|
+
it "should generate PNG images when format is set to 'png'" do
|
5
|
+
code = <<-eos
|
6
|
+
digraph foo {
|
7
|
+
node [style=rounded]
|
8
|
+
node1 [shape=box]
|
9
|
+
node2 [fillcolor=yellow, style="rounded,filled", shape=diamond]
|
10
|
+
node3 [shape=record, label="{ a | b | c }"]
|
11
|
+
|
12
|
+
node1 -> node2 -> node3
|
13
|
+
}
|
14
|
+
eos
|
15
|
+
|
16
|
+
File.write('graphviz.txt', code)
|
17
|
+
|
18
|
+
doc = <<-eos
|
19
|
+
= Hello, graphviz!
|
20
|
+
Doc Writer <doc@example.com>
|
21
|
+
|
22
|
+
== First Section
|
23
|
+
|
24
|
+
graphviz::graphviz.txt[format="png"]
|
25
|
+
eos
|
26
|
+
|
27
|
+
d = Asciidoctor.load StringIO.new(doc)
|
28
|
+
expect(d).to_not be_nil
|
29
|
+
|
30
|
+
b = d.find { |b| b.context == :image }
|
31
|
+
expect(b).to_not be_nil
|
32
|
+
|
33
|
+
expect(b.content_model).to eq :empty
|
34
|
+
|
35
|
+
target = b.attributes['target']
|
36
|
+
expect(target).to_not be_nil
|
37
|
+
expect(target).to match /\.png$/
|
38
|
+
expect(File.exists?(target)).to be_true
|
39
|
+
|
40
|
+
expect(b.attributes['width']).to_not be_nil
|
41
|
+
expect(b.attributes['height']).to_not be_nil
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe Asciidoctor::Diagram::GraphvizBlock do
|
46
|
+
it "should generate PNG images when format is set to 'png'" do
|
47
|
+
doc = <<-eos
|
48
|
+
= Hello, graphviz!
|
49
|
+
Doc Writer <doc@example.com>
|
50
|
+
|
51
|
+
== First Section
|
52
|
+
|
53
|
+
[graphviz, format="png"]
|
54
|
+
----
|
55
|
+
digraph foo {
|
56
|
+
node [style=rounded]
|
57
|
+
node1 [shape=box]
|
58
|
+
node2 [fillcolor=yellow, style="rounded,filled", shape=diamond]
|
59
|
+
node3 [shape=record, label="{ a | b | c }"]
|
60
|
+
|
61
|
+
node1 -> node2 -> node3
|
62
|
+
}
|
63
|
+
----
|
64
|
+
eos
|
65
|
+
|
66
|
+
d = Asciidoctor.load StringIO.new(doc)
|
67
|
+
expect(d).to_not be_nil
|
68
|
+
|
69
|
+
b = d.find { |b| b.context == :image }
|
70
|
+
expect(b).to_not be_nil
|
71
|
+
|
72
|
+
expect(b.content_model).to eq :empty
|
73
|
+
|
74
|
+
target = b.attributes['target']
|
75
|
+
expect(target).to_not be_nil
|
76
|
+
expect(target).to match /\.png$/
|
77
|
+
expect(File.exists?(target)).to be_true
|
78
|
+
|
79
|
+
expect(b.attributes['width']).to_not be_nil
|
80
|
+
expect(b.attributes['height']).to_not be_nil
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should generate SVG images when format is set to 'svg'" do
|
84
|
+
doc = <<-eos
|
85
|
+
= Hello, graphviz!
|
86
|
+
Doc Writer <doc@example.com>
|
87
|
+
|
88
|
+
== First Section
|
89
|
+
|
90
|
+
[graphviz, format="svg"]
|
91
|
+
----
|
92
|
+
digraph foo {
|
93
|
+
node [style=rounded]
|
94
|
+
node1 [shape=box]
|
95
|
+
node2 [fillcolor=yellow, style="rounded,filled", shape=diamond]
|
96
|
+
node3 [shape=record, label="{ a | b | c }"]
|
97
|
+
|
98
|
+
node1 -> node2 -> node3
|
99
|
+
}
|
100
|
+
----
|
101
|
+
eos
|
102
|
+
|
103
|
+
d = Asciidoctor.load StringIO.new(doc)
|
104
|
+
expect(d).to_not be_nil
|
105
|
+
|
106
|
+
b = d.find { |b| b.context == :image }
|
107
|
+
expect(b).to_not be_nil
|
108
|
+
|
109
|
+
expect(b.content_model).to eq :empty
|
110
|
+
|
111
|
+
target = b.attributes['target']
|
112
|
+
expect(target).to_not be_nil
|
113
|
+
expect(target).to match /\.svg$/
|
114
|
+
expect(File.exists?(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 raise an error when when format is set to an invalid value" do
|
121
|
+
doc = <<-eos
|
122
|
+
= Hello, graphviz!
|
123
|
+
Doc Writer <doc@example.com>
|
124
|
+
|
125
|
+
== First Section
|
126
|
+
|
127
|
+
[graphviz, format="foobar"]
|
128
|
+
----
|
129
|
+
----
|
130
|
+
eos
|
131
|
+
|
132
|
+
expect { Asciidoctor.load StringIO.new(doc) }.to raise_error /support.*format/i
|
133
|
+
end
|
134
|
+
end
|
data/spec/plantuml_spec.rb
CHANGED
@@ -1,5 +1,43 @@
|
|
1
1
|
require_relative 'test_helper'
|
2
2
|
|
3
|
+
describe Asciidoctor::Diagram::PlantUmlBlockMacro do
|
4
|
+
it "should generate PNG images when format is set to 'png'" do
|
5
|
+
code = <<-eos
|
6
|
+
User -> (Start)
|
7
|
+
User --> (Use the application) : Label
|
8
|
+
|
9
|
+
:Main Admin: ---> (Use the application) : Another label
|
10
|
+
eos
|
11
|
+
|
12
|
+
File.write('plantuml.txt', code)
|
13
|
+
|
14
|
+
doc = <<-eos
|
15
|
+
= Hello, PlantUML!
|
16
|
+
Doc Writer <doc@example.com>
|
17
|
+
|
18
|
+
== First Section
|
19
|
+
|
20
|
+
plantuml::plantuml.txt[format="png"]
|
21
|
+
eos
|
22
|
+
|
23
|
+
d = Asciidoctor.load StringIO.new(doc)
|
24
|
+
expect(d).to_not be_nil
|
25
|
+
|
26
|
+
b = d.find { |b| b.context == :image }
|
27
|
+
expect(b).to_not be_nil
|
28
|
+
|
29
|
+
expect(b.content_model).to eq :empty
|
30
|
+
|
31
|
+
target = b.attributes['target']
|
32
|
+
expect(target).to_not be_nil
|
33
|
+
expect(target).to match /\.png$/
|
34
|
+
expect(File.exists?(target)).to be_true
|
35
|
+
|
36
|
+
expect(b.attributes['width']).to_not be_nil
|
37
|
+
expect(b.attributes['height']).to_not be_nil
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
3
41
|
describe Asciidoctor::Diagram::PlantUmlBlock do
|
4
42
|
it "should generate PNG images when format is set to 'png'" do
|
5
43
|
doc = <<-eos
|
data/spec/test_helper.rb
CHANGED
@@ -7,6 +7,7 @@ require 'tmpdir'
|
|
7
7
|
|
8
8
|
require_relative '../lib/asciidoctor-diagram'
|
9
9
|
require_relative '../lib/asciidoctor-diagram/ditaa/extension'
|
10
|
+
require_relative '../lib/asciidoctor-diagram/graphviz/extension'
|
10
11
|
require_relative '../lib/asciidoctor-diagram/plantuml/extension'
|
11
12
|
|
12
13
|
module Asciidoctor
|
metadata
CHANGED
@@ -1,83 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asciidoctor-diagram
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pepijn Van Eeckhoudt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.3'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: asciidoctor
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 0.1.4
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.1.4
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rjb
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: 1.4.9
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 1.4.9
|
83
83
|
description: Asciidoctor diagramming extension
|
@@ -87,31 +87,36 @@ executables: []
|
|
87
87
|
extensions: []
|
88
88
|
extra_rdoc_files: []
|
89
89
|
files:
|
90
|
-
-
|
91
|
-
- ".travis.yml"
|
92
|
-
- Gemfile
|
90
|
+
- CHANGELOG.adoc
|
93
91
|
- LICENSE.txt
|
94
92
|
- README.adoc
|
95
93
|
- Rakefile
|
96
|
-
-
|
97
|
-
-
|
94
|
+
- examples/Gemfile
|
95
|
+
- examples/README.adoc
|
96
|
+
- examples/build_example.rb
|
97
|
+
- examples/design.adoc
|
98
|
+
- examples/features.adoc
|
98
99
|
- lib/asciidoctor-diagram.rb
|
99
|
-
- lib/asciidoctor-diagram/binaryio.rb
|
100
|
-
- lib/asciidoctor-diagram/diagram.rb
|
101
100
|
- lib/asciidoctor-diagram/ditaa.rb
|
102
101
|
- lib/asciidoctor-diagram/ditaa/extension.rb
|
103
|
-
- lib/asciidoctor-diagram/
|
104
|
-
- lib/asciidoctor-diagram/
|
105
|
-
- lib/asciidoctor-diagram/
|
102
|
+
- lib/asciidoctor-diagram/ditaa/generator.rb
|
103
|
+
- lib/asciidoctor-diagram/graphviz.rb
|
104
|
+
- lib/asciidoctor-diagram/graphviz/extension.rb
|
106
105
|
- lib/asciidoctor-diagram/plantuml.rb
|
107
106
|
- lib/asciidoctor-diagram/plantuml/extension.rb
|
108
|
-
- lib/asciidoctor-diagram/
|
109
|
-
- lib/asciidoctor-diagram/
|
107
|
+
- lib/asciidoctor-diagram/plantuml/generator.rb
|
108
|
+
- lib/asciidoctor-diagram/util/binaryio.rb
|
109
|
+
- lib/asciidoctor-diagram/util/diagram.rb
|
110
|
+
- lib/asciidoctor-diagram/util/java.rb
|
111
|
+
- lib/asciidoctor-diagram/util/java_jruby.rb
|
112
|
+
- lib/asciidoctor-diagram/util/java_rjb.rb
|
113
|
+
- lib/asciidoctor-diagram/util/png.rb
|
114
|
+
- lib/asciidoctor-diagram/util/svg.rb
|
110
115
|
- lib/asciidoctor-diagram/version.rb
|
111
116
|
- lib/ditaamini0_9.jar
|
112
117
|
- lib/plantuml.jar
|
113
|
-
- plantuml-license.txt
|
114
118
|
- spec/ditaa_spec.rb
|
119
|
+
- spec/graphviz_spec.rb
|
115
120
|
- spec/plantuml_spec.rb
|
116
121
|
- spec/test_helper.rb
|
117
122
|
homepage: https://github.com/asciidoctor/asciidoctor-diagram
|
@@ -124,22 +129,23 @@ require_paths:
|
|
124
129
|
- lib
|
125
130
|
required_ruby_version: !ruby/object:Gem::Requirement
|
126
131
|
requirements:
|
127
|
-
- -
|
132
|
+
- - '>='
|
128
133
|
- !ruby/object:Gem::Version
|
129
134
|
version: '0'
|
130
135
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
136
|
requirements:
|
132
|
-
- -
|
137
|
+
- - '>='
|
133
138
|
- !ruby/object:Gem::Version
|
134
139
|
version: '0'
|
135
140
|
requirements: []
|
136
141
|
rubyforge_project:
|
137
|
-
rubygems_version: 2.
|
142
|
+
rubygems_version: 2.0.3
|
138
143
|
signing_key:
|
139
144
|
specification_version: 4
|
140
145
|
summary: An extension for asciidoctor that adds support for UML diagram generation
|
141
146
|
using PlantUML
|
142
147
|
test_files:
|
143
148
|
- spec/ditaa_spec.rb
|
149
|
+
- spec/graphviz_spec.rb
|
144
150
|
- spec/plantuml_spec.rb
|
145
151
|
- spec/test_helper.rb
|