liquid-diagrams 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +15 -16
- data/features/diagrams/bitfield.feature +48 -0
- data/features/diagrams/blockdiag.feature +19 -0
- data/features/diagrams/erd.feature +19 -0
- data/features/diagrams/graphviz.feature +19 -0
- data/features/diagrams/mermaid.feature +20 -0
- data/features/diagrams/netlistsvg.feature +27 -0
- data/features/diagrams/nomnoml.feature +19 -0
- data/features/diagrams/plantuml.feature +17 -0
- data/features/diagrams/smcat.feature +23 -0
- data/features/diagrams/svgbob.feature +19 -0
- data/features/diagrams/syntrax.feature +20 -0
- data/features/diagrams/vega.feature +23 -0
- data/features/diagrams/vegalite.feature +23 -0
- data/features/diagrams/wavedrom.feature +24 -0
- data/features/step_definitions/diagrams.rb +21 -0
- data/features/support/env.rb +15 -0
- data/lib/liquid_diagrams.rb +9 -17
- data/lib/liquid_diagrams/basic_block.rb +12 -42
- data/lib/liquid_diagrams/basic_renderer.rb +43 -1
- data/lib/liquid_diagrams/blocks.rb +14 -0
- data/lib/liquid_diagrams/renderers.rb +10 -0
- data/lib/liquid_diagrams/renderers/bitfield_renderer.rb +9 -13
- data/lib/liquid_diagrams/renderers/blockdiag_renderer.rb +7 -15
- data/lib/liquid_diagrams/renderers/erd_renderer.rb +7 -15
- data/lib/liquid_diagrams/renderers/graphviz_renderer.rb +10 -10
- data/lib/liquid_diagrams/renderers/mermaid_renderer.rb +2 -9
- data/lib/liquid_diagrams/renderers/netlistsvg_renderer.rb +13 -0
- data/lib/liquid_diagrams/renderers/nomnoml_renderer.rb +0 -4
- data/lib/liquid_diagrams/renderers/plantuml_renderer.rb +5 -5
- data/lib/liquid_diagrams/renderers/smcat_renderer.rb +0 -10
- data/lib/liquid_diagrams/renderers/svgbob_renderer.rb +0 -10
- data/lib/liquid_diagrams/renderers/syntrax_renderer.rb +0 -10
- data/lib/liquid_diagrams/renderers/vega_renderer.rb +9 -23
- data/lib/liquid_diagrams/renderers/vegalite_renderer.rb +19 -0
- data/lib/liquid_diagrams/renderers/wavedrom_renderer.rb +1 -1
- data/lib/liquid_diagrams/rendering.rb +8 -6
- data/lib/liquid_diagrams/utils.rb +21 -14
- data/lib/liquid_diagrams/version.rb +1 -1
- data/spec/liquid_diagrams/basic_block_spec.rb +25 -62
- data/spec/liquid_diagrams/basic_renderer_spec.rb +27 -5
- data/spec/liquid_diagrams/blocks_spec.rb +0 -0
- data/spec/liquid_diagrams/renderers/bitfield_renderer_spec.rb +1 -19
- data/spec/liquid_diagrams/renderers/blockdiag_renderer_spec.rb +3 -31
- data/spec/liquid_diagrams/renderers/erd_renderer_spec.rb +3 -37
- data/spec/liquid_diagrams/renderers/graphviz_renderer_spec.rb +11 -21
- data/spec/liquid_diagrams/renderers/mermaid_renderer_spec.rb +3 -19
- data/spec/liquid_diagrams/renderers/netlistsvg_renderer_spec.rb +9 -0
- data/spec/liquid_diagrams/renderers/nomnoml_renderer_spec.rb +1 -7
- data/spec/liquid_diagrams/renderers/plantuml_renderer_spec.rb +4 -14
- data/spec/liquid_diagrams/renderers/smcat_renderer_spec.rb +1 -25
- data/spec/liquid_diagrams/renderers/svgbob_renderer_spec.rb +1 -23
- data/spec/liquid_diagrams/renderers/syntrax_renderer_spec.rb +1 -23
- data/spec/liquid_diagrams/renderers/vega_renderer_spec.rb +3 -21
- data/spec/liquid_diagrams/renderers/vegalite_renderer_spec.rb +15 -0
- data/spec/liquid_diagrams/renderers/wavedrom_renderer_spec.rb +3 -3
- data/spec/liquid_diagrams/utils_spec.rb +20 -8
- data/spec/liquid_diagrams_spec.rb +52 -0
- data/spec/spec_helper.rb +5 -0
- data/spec/support/shared_examples.rb +8 -19
- data/vendor/{mermaid_puppeteer_config.json → puppeteer.json} +0 -0
- metadata +70 -19
@@ -2,48 +2,14 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
RSpec.describe LiquidDiagrams::Renderers::ErdRenderer do
|
5
|
+
RSpec.describe LiquidDiagrams::Renderers::ErdRenderer, :renderers do
|
6
6
|
subject(:renderer) { described_class.new('content') }
|
7
7
|
|
8
8
|
describe '#render' do
|
9
9
|
include_examples 'render with stdin and stdout', described_class
|
10
10
|
end
|
11
11
|
|
12
|
-
describe '#
|
13
|
-
|
14
|
-
it { expect(renderer.build_command).to eq 'erd --fmt=svg' }
|
15
|
-
end
|
16
|
-
|
17
|
-
context 'when config is not empty' do
|
18
|
-
before do
|
19
|
-
renderer.instance_variable_set(
|
20
|
-
:@config, { 'edge' => 10, 'color' => :blue }
|
21
|
-
)
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'build command with config' do
|
25
|
-
expect(renderer.build_command).to match '--edge=10'
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'ignore unsupported configuration' do
|
29
|
-
expect(renderer.build_command).not_to match '--color'
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
context 'when switch is true' do
|
34
|
-
it 'build command' do
|
35
|
-
renderer.instance_variable_set(:@config, { 'dot-entity' => true })
|
36
|
-
|
37
|
-
expect(renderer.build_command).to match '--dot-entity'
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
context 'when switch is false' do
|
42
|
-
it 'build command' do
|
43
|
-
renderer.instance_variable_set(:@config, { 'dot-entity' => false })
|
44
|
-
|
45
|
-
expect(renderer.build_command).not_to match '--dot-entity'
|
46
|
-
end
|
47
|
-
end
|
12
|
+
describe '#executable' do
|
13
|
+
it { expect(renderer.executable).to eq 'erd --fmt=svg' }
|
48
14
|
end
|
49
15
|
end
|
@@ -2,28 +2,18 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
RSpec.describe LiquidDiagrams::Renderers::GraphvizRenderer do
|
5
|
+
RSpec.describe LiquidDiagrams::Renderers::GraphvizRenderer, :renderers do
|
6
6
|
subject(:renderer) { described_class.new('content') }
|
7
7
|
|
8
8
|
describe '#render' do
|
9
9
|
include_examples 'render with stdin and stdout', described_class
|
10
10
|
end
|
11
11
|
|
12
|
-
describe '#
|
13
|
-
|
14
|
-
|
15
|
-
end
|
16
|
-
|
17
|
-
context 'when config is not empty' do
|
18
|
-
before do
|
19
|
-
renderer.instance_variable_set(:@config, { 'layout' => 'dot' })
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'build command with config' do
|
23
|
-
expect(renderer.build_command).to match '-Kdot'
|
24
|
-
end
|
25
|
-
end
|
12
|
+
describe '#executable' do
|
13
|
+
it { expect(renderer.executable).to eq 'dot -Tsvg' }
|
14
|
+
end
|
26
15
|
|
16
|
+
describe '#arguments' do
|
27
17
|
context 'with string attributes' do
|
28
18
|
before do
|
29
19
|
renderer.instance_variable_set(
|
@@ -31,8 +21,8 @@ RSpec.describe LiquidDiagrams::Renderers::GraphvizRenderer do
|
|
31
21
|
)
|
32
22
|
end
|
33
23
|
|
34
|
-
it
|
35
|
-
expect(renderer.
|
24
|
+
it do
|
25
|
+
expect(renderer.arguments).to match '-Gcolor=red'
|
36
26
|
end
|
37
27
|
end
|
38
28
|
|
@@ -43,8 +33,8 @@ RSpec.describe LiquidDiagrams::Renderers::GraphvizRenderer do
|
|
43
33
|
)
|
44
34
|
end
|
45
35
|
|
46
|
-
it
|
47
|
-
expect(renderer.
|
36
|
+
it do
|
37
|
+
expect(renderer.arguments).to match '-Ncolor=red -Nsize=10'
|
48
38
|
end
|
49
39
|
end
|
50
40
|
|
@@ -55,8 +45,8 @@ RSpec.describe LiquidDiagrams::Renderers::GraphvizRenderer do
|
|
55
45
|
)
|
56
46
|
end
|
57
47
|
|
58
|
-
it
|
59
|
-
expect(renderer.
|
48
|
+
it do
|
49
|
+
expect(renderer.arguments).to match '-Ecolor=red -Esize=10'
|
60
50
|
end
|
61
51
|
end
|
62
52
|
end
|
@@ -2,30 +2,14 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
RSpec.describe LiquidDiagrams::Renderers::MermaidRenderer do
|
5
|
+
RSpec.describe LiquidDiagrams::Renderers::MermaidRenderer, :renderers do
|
6
6
|
subject(:renderer) { described_class.new('content') }
|
7
7
|
|
8
8
|
describe '#render' do
|
9
9
|
include_examples 'render with tempfile', described_class
|
10
10
|
end
|
11
11
|
|
12
|
-
describe '#
|
13
|
-
|
14
|
-
it { expect(renderer.build_command).to match 'mmdc --puppeteerConfigFile' }
|
15
|
-
end
|
16
|
-
|
17
|
-
context 'when config is not empty' do
|
18
|
-
before do
|
19
|
-
renderer.instance_variable_set(:@config, { 'scale' => 10, 'color' => :blue })
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'build command with config' do
|
23
|
-
expect(renderer.build_command).to match '--scale 10'
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'ignore unsupported configuration' do
|
27
|
-
expect(renderer.build_command).not_to match '--color blue'
|
28
|
-
end
|
29
|
-
end
|
12
|
+
describe '#executable' do
|
13
|
+
it { expect(renderer.executable).to match 'mmdc --puppeteerConfigFile' }
|
30
14
|
end
|
31
15
|
end
|
@@ -2,14 +2,8 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
RSpec.describe LiquidDiagrams::Renderers::NomnomlRenderer do
|
6
|
-
subject(:renderer) { described_class.new('content') }
|
7
|
-
|
5
|
+
RSpec.describe LiquidDiagrams::Renderers::NomnomlRenderer, :renderers do
|
8
6
|
describe '#render' do
|
9
7
|
include_examples 'render with tempfile', described_class
|
10
8
|
end
|
11
|
-
|
12
|
-
describe '#build_command' do
|
13
|
-
it { expect(renderer.build_command).to eq 'nomnoml' }
|
14
|
-
end
|
15
9
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
RSpec.describe LiquidDiagrams::Renderers::PlantumlRenderer do
|
5
|
+
RSpec.describe LiquidDiagrams::Renderers::PlantumlRenderer, :renderers do
|
6
6
|
subject(:renderer) { described_class.new('content') }
|
7
7
|
|
8
8
|
describe '#render' do
|
@@ -13,15 +13,10 @@ RSpec.describe LiquidDiagrams::Renderers::PlantumlRenderer do
|
|
13
13
|
).and_return('<?xml version="1.0" encoding="UTF-8" standalone="no"?><>')
|
14
14
|
end
|
15
15
|
|
16
|
-
it 'call build_command' do
|
17
|
-
renderer.render
|
18
|
-
|
19
|
-
expect(renderer).to have_received(:build_command)
|
20
|
-
end
|
21
|
-
|
22
16
|
it 'render with stdin and stdout' do
|
23
17
|
renderer.render
|
24
18
|
|
19
|
+
expect(renderer).to have_received(:build_command)
|
25
20
|
expect(LiquidDiagrams::Rendering).to have_received(:render_with_stdin_stdout)
|
26
21
|
end
|
27
22
|
|
@@ -30,12 +25,7 @@ RSpec.describe LiquidDiagrams::Renderers::PlantumlRenderer do
|
|
30
25
|
end
|
31
26
|
end
|
32
27
|
|
33
|
-
describe '#
|
34
|
-
it
|
35
|
-
command = renderer.build_command
|
36
|
-
|
37
|
-
expect(command).to match 'plantuml'
|
38
|
-
expect(command).to match '-tsvg -pipe'
|
39
|
-
end
|
28
|
+
describe '#executable' do
|
29
|
+
it { expect(renderer.executable).to match '-tsvg -pipe' }
|
40
30
|
end
|
41
31
|
end
|
@@ -2,32 +2,8 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
RSpec.describe LiquidDiagrams::Renderers::SmcatRenderer do
|
6
|
-
subject(:renderer) { described_class.new('content') }
|
7
|
-
|
5
|
+
RSpec.describe LiquidDiagrams::Renderers::SmcatRenderer, :renderers do
|
8
6
|
describe '#render' do
|
9
7
|
include_examples 'render with tempfile', described_class
|
10
8
|
end
|
11
|
-
|
12
|
-
describe '#build_command' do
|
13
|
-
context 'when config is empty' do
|
14
|
-
it { expect(renderer.build_command).to eq 'smcat' }
|
15
|
-
end
|
16
|
-
|
17
|
-
context 'when config is not empty' do
|
18
|
-
before do
|
19
|
-
renderer.instance_variable_set(
|
20
|
-
:@config, { 'engine' => 'dot', 'color' => :blue }
|
21
|
-
)
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'build command with config' do
|
25
|
-
expect(renderer.build_command).to match '--engine dot'
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'ignore unsupported configuration' do
|
29
|
-
expect(renderer.build_command).not_to match '--color blue'
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
9
|
end
|
@@ -2,30 +2,8 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
RSpec.describe LiquidDiagrams::Renderers::SvgbobRenderer do
|
6
|
-
subject(:renderer) { described_class.new('content') }
|
7
|
-
|
5
|
+
RSpec.describe LiquidDiagrams::Renderers::SvgbobRenderer, :renderers do
|
8
6
|
describe '#render' do
|
9
7
|
include_examples 'render with stdin and stdout', described_class
|
10
8
|
end
|
11
|
-
|
12
|
-
describe '#build_command' do
|
13
|
-
context 'when config is empty' do
|
14
|
-
it { expect(renderer.build_command).to eq 'svgbob' }
|
15
|
-
end
|
16
|
-
|
17
|
-
context 'when config is not empty' do
|
18
|
-
before do
|
19
|
-
renderer.instance_variable_set(:@config, { 'scale' => 10, 'color' => :blue })
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'build command with config' do
|
23
|
-
expect(renderer.build_command).to match '--scale 10'
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'ignore unsupported configuration' do
|
27
|
-
expect(renderer.build_command).not_to match '--color blue'
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
9
|
end
|
@@ -2,30 +2,8 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
RSpec.describe LiquidDiagrams::Renderers::SyntraxRenderer do
|
6
|
-
subject(:renderer) { described_class.new('content') }
|
7
|
-
|
5
|
+
RSpec.describe LiquidDiagrams::Renderers::SyntraxRenderer, :renderers do
|
8
6
|
describe '#render' do
|
9
7
|
include_examples 'render with tempfile', described_class
|
10
8
|
end
|
11
|
-
|
12
|
-
describe '#build_command' do
|
13
|
-
context 'when config is empty' do
|
14
|
-
it { expect(renderer.build_command).to eq 'syntrax' }
|
15
|
-
end
|
16
|
-
|
17
|
-
context 'when config is not empty' do
|
18
|
-
before do
|
19
|
-
renderer.instance_variable_set(:@config, { 'scale' => 10, 'color' => :blue })
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'build command with config' do
|
23
|
-
expect(renderer.build_command).to match '--scale 10'
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'ignore unsupported configuration' do
|
27
|
-
expect(renderer.build_command).not_to match '--color blue'
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
9
|
end
|
@@ -2,32 +2,14 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
RSpec.describe LiquidDiagrams::Renderers::VegaRenderer do
|
5
|
+
RSpec.describe LiquidDiagrams::Renderers::VegaRenderer, :renderers do
|
6
6
|
subject(:renderer) { described_class.new('content') }
|
7
7
|
|
8
8
|
describe '#render' do
|
9
9
|
include_examples 'render with stdin and stdout', described_class
|
10
10
|
end
|
11
11
|
|
12
|
-
describe '#
|
13
|
-
|
14
|
-
it { expect(renderer.build_command).to eq 'vg2svg' }
|
15
|
-
end
|
16
|
-
|
17
|
-
context 'when config is not empty' do
|
18
|
-
before do
|
19
|
-
renderer.instance_variable_set(
|
20
|
-
:@config, { 'scale' => 10, 'other' => 'value' }
|
21
|
-
)
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'build command with config' do
|
25
|
-
expect(renderer.build_command).to match '--scale 10'
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'ignore unsupported configuration' do
|
29
|
-
expect(renderer.build_command).not_to match '--other'
|
30
|
-
end
|
31
|
-
end
|
12
|
+
describe '#executable' do
|
13
|
+
it { expect(renderer.executable).to eq 'vg2svg' }
|
32
14
|
end
|
33
15
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe LiquidDiagrams::Renderers::VegaliteRenderer, :renderers do
|
6
|
+
subject(:renderer) { described_class.new('content') }
|
7
|
+
|
8
|
+
describe '#render' do
|
9
|
+
include_examples 'render with stdin and stdout', described_class
|
10
|
+
end
|
11
|
+
|
12
|
+
describe '#executable' do
|
13
|
+
it { expect(renderer.executable).to eq 'vl2svg' }
|
14
|
+
end
|
15
|
+
end
|
@@ -2,14 +2,14 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
RSpec.describe LiquidDiagrams::Renderers::WavedromRenderer do
|
5
|
+
RSpec.describe LiquidDiagrams::Renderers::WavedromRenderer, :renderers do
|
6
6
|
subject(:renderer) { described_class.new('content') }
|
7
7
|
|
8
8
|
describe '#render' do
|
9
9
|
include_examples 'render with tempfile', described_class
|
10
10
|
end
|
11
11
|
|
12
|
-
describe '#
|
13
|
-
it { expect(renderer.
|
12
|
+
describe '#executable' do
|
13
|
+
it { expect(renderer.executable).to eq 'wavedrom-cli' }
|
14
14
|
end
|
15
15
|
end
|
@@ -8,7 +8,7 @@ RSpec.describe LiquidDiagrams::Utils do
|
|
8
8
|
it 'join the string with prefix' do
|
9
9
|
args = described_class.join('path', with: ' -I')
|
10
10
|
|
11
|
-
expect(args).to eq '
|
11
|
+
expect(args).to eq '-Ipath'
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
@@ -18,7 +18,7 @@ RSpec.describe LiquidDiagrams::Utils do
|
|
18
18
|
%w[path1 path2], with: ' -I'
|
19
19
|
)
|
20
20
|
|
21
|
-
expect(args).to eq '
|
21
|
+
expect(args).to eq '-Ipath1 -Ipath2'
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
@@ -28,16 +28,26 @@ RSpec.describe LiquidDiagrams::Utils do
|
|
28
28
|
{ color: 'red', size: '10' }, with: ' --'
|
29
29
|
) { |k, v| "#{k} #{v}" }
|
30
30
|
|
31
|
-
expect(args).to eq '
|
31
|
+
expect(args).to eq '--color red --size 10'
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
-
describe '.
|
37
|
-
|
38
|
-
|
36
|
+
describe '.build_options' do
|
37
|
+
let(:keys) { %i[color size] }
|
38
|
+
let(:config) { { color: :red, scale: 5 } }
|
39
39
|
|
40
|
-
|
40
|
+
it 'build options from config' do
|
41
|
+
expect(described_class.build_options(config, keys)).to eq '--color red'
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe '.build_flags' do
|
46
|
+
let(:keys) { %i[bold italic] }
|
47
|
+
let(:config) { { bold: true, center: true, italic: false } }
|
48
|
+
|
49
|
+
it 'build flags from config' do
|
50
|
+
expect(described_class.build_flags(config, keys)).to eq '--bold'
|
41
51
|
end
|
42
52
|
end
|
43
53
|
|
@@ -70,7 +80,9 @@ RSpec.describe LiquidDiagrams::Utils do
|
|
70
80
|
|
71
81
|
options = described_class.parse_inline_options(input)
|
72
82
|
|
73
|
-
expect(options).to match a_hash_including(
|
83
|
+
expect(options).to match a_hash_including(
|
84
|
+
'a1' => 'v1', 'a2' => 'v2', 'a3' => 'k3 v3'
|
85
|
+
)
|
74
86
|
end
|
75
87
|
end
|
76
88
|
end
|