jekyll-diagrams 0.9.3 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/features/{blockdiag.feature → blockdiag/block.feature} +2 -2
  3. data/features/graphviz/block.feature +26 -0
  4. data/features/{graphviz.feature → graphviz/config.feature} +18 -31
  5. data/features/{mermaid.feature → mermaid/block.feature} +2 -2
  6. data/features/{nomnoml.feature → nomnoml/block.feature} +2 -2
  7. data/features/{plantuml.feature → plantuml/block.feature} +3 -12
  8. data/features/{smcat.feature → smcat/block.feature} +3 -3
  9. data/features/step_definitions/jekyll-diagrams.rb +5 -5
  10. data/features/support/env.rb +3 -9
  11. data/features/{syntrax.feature → syntrax/block.feature} +2 -2
  12. data/features/{vega.feature → vega/block.feature} +3 -3
  13. data/features/{wavedrom.feature → wavedrom/block.feature} +2 -2
  14. data/lib/jekyll-diagrams.rb +22 -61
  15. data/lib/jekyll-diagrams/basic_block.rb +28 -0
  16. data/lib/jekyll-diagrams/basic_renderer.rb +38 -0
  17. data/lib/jekyll-diagrams/blockdiag.rb +5 -31
  18. data/lib/jekyll-diagrams/blockdiag/block.rb +9 -0
  19. data/lib/jekyll-diagrams/blockdiag/renderer.rb +40 -0
  20. data/lib/jekyll-diagrams/erd.rb +4 -30
  21. data/lib/jekyll-diagrams/erd/block.rb +8 -0
  22. data/lib/jekyll-diagrams/erd/renderer.rb +34 -0
  23. data/lib/jekyll-diagrams/errors.rb +12 -13
  24. data/lib/jekyll-diagrams/graphviz.rb +4 -34
  25. data/lib/jekyll-diagrams/graphviz/block.rb +8 -0
  26. data/lib/jekyll-diagrams/graphviz/renderer.rb +40 -0
  27. data/lib/jekyll-diagrams/mermaid.rb +4 -25
  28. data/lib/jekyll-diagrams/mermaid/block.rb +8 -0
  29. data/lib/jekyll-diagrams/mermaid/renderer.rb +29 -0
  30. data/lib/jekyll-diagrams/nomnoml.rb +4 -15
  31. data/lib/jekyll-diagrams/nomnoml/block.rb +8 -0
  32. data/lib/jekyll-diagrams/nomnoml/renderer.rb +19 -0
  33. data/lib/jekyll-diagrams/plantuml.rb +4 -19
  34. data/lib/jekyll-diagrams/plantuml/block.rb +8 -0
  35. data/lib/jekyll-diagrams/plantuml/renderer.rb +23 -0
  36. data/lib/jekyll-diagrams/smcat.rb +4 -26
  37. data/lib/jekyll-diagrams/smcat/block.rb +8 -0
  38. data/lib/jekyll-diagrams/smcat/renderer.rb +30 -0
  39. data/lib/jekyll-diagrams/svgbob.rb +4 -21
  40. data/lib/jekyll-diagrams/svgbob/block.rb +8 -0
  41. data/lib/jekyll-diagrams/svgbob/renderer.rb +25 -0
  42. data/lib/jekyll-diagrams/syntrax.rb +4 -23
  43. data/lib/jekyll-diagrams/syntrax/block.rb +8 -0
  44. data/lib/jekyll-diagrams/syntrax/renderer.rb +27 -0
  45. data/lib/jekyll-diagrams/utils.rb +85 -0
  46. data/lib/jekyll-diagrams/vega.rb +5 -26
  47. data/lib/jekyll-diagrams/vega/block.rb +9 -0
  48. data/lib/jekyll-diagrams/vega/renderer.rb +33 -0
  49. data/lib/jekyll-diagrams/version.rb +1 -1
  50. data/lib/jekyll-diagrams/wavedrom.rb +4 -15
  51. data/lib/jekyll-diagrams/wavedrom/block.rb +8 -0
  52. data/lib/jekyll-diagrams/wavedrom/renderer.rb +19 -0
  53. data/spec/basic_block_spec.rb +70 -0
  54. data/spec/basic_renderer_spec.rb +69 -0
  55. data/spec/blockdiag_renderer_spec.rb +43 -0
  56. data/spec/erd_renderer_spec.rb +43 -0
  57. data/spec/graphviz_renderer_spec.rb +19 -0
  58. data/spec/jekyll-diagrams_spec.rb +23 -0
  59. data/spec/mermaid_renderer_spec.rb +19 -0
  60. data/spec/nomnoml_renderer_spec.rb +19 -0
  61. data/spec/plantuml_renderer_spec.rb +20 -0
  62. data/spec/rendering_spec.rb +111 -0
  63. data/spec/smcat_renderer_spec.rb +19 -0
  64. data/spec/spec_helper.rb +31 -0
  65. data/spec/svgbob_renderer_spec.rb +27 -0
  66. data/spec/syntrax_renderer_spec.rb +19 -0
  67. data/spec/utils_spec.rb +163 -0
  68. data/spec/vega_renderer_spec.rb +19 -0
  69. data/spec/wavedrom_renderer_spec.rb +19 -0
  70. metadata +115 -95
  71. data/lib/jekyll-diagrams/block.rb +0 -51
  72. data/test/block_test.rb +0 -6
  73. data/test/blockdiag_test.rb +0 -28
  74. data/test/erd_test.rb +0 -25
  75. data/test/rendering_test.rb +0 -20
  76. data/test/svgbob_test.rb +0 -22
  77. data/test/test_helper.rb +0 -22
@@ -1,51 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Jekyll
4
- module Diagrams
5
- class Block < Liquid::Block
6
- include Rendering
7
-
8
- def render(context)
9
- config = Diagrams.config_for(context, block_name)
10
-
11
- output = render_svg(super.to_s, config)
12
- wrap_class(output)
13
- rescue StandardError => e
14
- error_mode = Diagrams.error_mode(context)
15
-
16
- output = handle_error(e, error_mode)
17
- wrap_class(output)
18
- end
19
-
20
- private
21
-
22
- def render_svg(_code, _config)
23
- ''
24
- end
25
-
26
- def wrap_class(content)
27
- <<~CONTENT
28
- <div class='jekyll-diagrams diagrams #{block_name}'>
29
- #{content}
30
- </div>"
31
- CONTENT
32
- end
33
-
34
- def handle_error(error, mode)
35
- topic = 'Jekyll Diagrams:'
36
- msg = error.message
37
-
38
- case mode
39
- when :lax
40
- Jekyll.logger.info topic, msg
41
- ''
42
- when :warn
43
- Jekyll.logger.warn topic, msg
44
- msg
45
- when :strict
46
- Jekyll.logger.abort_with topic, msg
47
- end
48
- end
49
- end
50
- end
51
- end
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'test_helper'
4
-
5
- class BlockTest < Minitest::Test
6
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'test_helper'
4
-
5
- class BlockdiagTest < Minitest::Test
6
- def setup
7
- @block = Jekyll::Diagrams::BlockdiagBlock.parse(
8
- 'blockdiag',
9
- '',
10
- Liquid::Tokenizer.new('{% endblockdiag %}'),
11
- Liquid::ParseContext.new
12
- )
13
- end
14
-
15
- def test_build_command_with_default_config
16
- config = {}
17
- assert_equal 'blockdiag -T svg --nodoctype', @block.build_command(config)
18
-
19
- config = { 'antialias' => true }
20
- assert_match '--antialias', @block.build_command(config)
21
-
22
- config = { 'antialias' => false }
23
- refute_match '--antialias', @block.build_command(config)
24
-
25
- config = { 'size' => 3 }
26
- assert_match '--size=3', @block.build_command(config)
27
- end
28
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'test_helper'
4
-
5
- class ErdTest < Minitest::Test
6
- def setup
7
- @block = Jekyll::Diagrams::ErdBlock.parse(
8
- 'erd',
9
- '',
10
- Liquid::Tokenizer.new('test {% enderd %}'),
11
- Liquid::ParseContext.new
12
- )
13
- end
14
-
15
- def test_build_command_with_default_config
16
- config = {}
17
- assert_equal 'erd --fmt=svg', @block.build_command(config)
18
-
19
- config = { 'edge' => 'compound' }
20
- assert_match 'edge', @block.build_command(config)
21
-
22
- config = { 'dot-entity' => true }
23
- assert_match 'dot-entity', @block.build_command(config)
24
- end
25
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'test_helper'
4
-
5
- class RenderingTest < Minitest::Test
6
- include Jekyll::Diagrams::Errors
7
- include Jekyll::Diagrams::Rendering
8
-
9
- def test_raise_command_not_found_error
10
- assert_raises CommandNotFoundError do
11
- render_with_command('not_exist_command')
12
- end
13
- end
14
-
15
- def test_raise_rendering_failed_error
16
- assert_raises RenderingFailedError do
17
- render_with_command('/bin/bash -c "exit 1"')
18
- end
19
- end
20
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'test_helper'
4
-
5
- class SvgbobTest < Minitest::Test
6
- def setup
7
- @block = Jekyll::Diagrams::SvgbobBlock.parse(
8
- 'svgbob',
9
- '',
10
- Liquid::Tokenizer.new('test {% endsvgbob %}'),
11
- Liquid::ParseContext.new
12
- )
13
- end
14
-
15
- def test_build_command_with_default_config
16
- config = {}
17
- assert_equal 'svgbob', @block.build_command(config)
18
-
19
- config = { 'scale' => '2' }
20
- assert_match '--scale 2', @block.build_command(config)
21
- end
22
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- lib = File.expand_path('../lib', __dir__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
-
6
- # Don't use coveralls in Github Actions
7
- unless ENV['GITHUB_ACTIONS']
8
- require 'coveralls'
9
- Coveralls.wear!
10
- end
11
-
12
- require 'minitest/autorun'
13
-
14
- require 'fileutils'
15
- require 'jekyll-diagrams'
16
-
17
- # Mocking this method for testing
18
- class Jekyll::Diagrams::Block
19
- def render_with_command(command, _output = :stdout, **_options)
20
- command
21
- end
22
- end