liquid-diagrams 0.3.0 → 0.4.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/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
|