jekyll-diagrams 0.9.3 → 0.10.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.
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