Module: Asciidoctor::Diagram::BlockDiag
- Includes:
- CliGenerator, Which
- Defined in:
- lib/asciidoctor-diagram/blockdiag/extension.rb
Class Method Summary collapse
Instance Method Summary collapse
Methods included from Which
Methods included from CliGenerator
#generate, #generate_file, #generate_stdin
Class Method Details
.define_processors(name) ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/asciidoctor-diagram/blockdiag/extension.rb', line 76 def self.define_processors(name) init = Proc.new do include ::Asciidoctor::Diagram::BlockDiag [:png, :svg].each do |f| register_format(f, :image) do |p, c| blockdiag(name, p, c, f) end end end block = Class.new(Extensions::DiagramBlockProcessor) do self.instance_eval(&init) end ::Asciidoctor::Diagram.const_set("#{name}BlockProcessor", block) block_macro = Class.new(Extensions::DiagramBlockMacroProcessor) do self.instance_eval(&init) end ::Asciidoctor::Diagram.const_set("#{name}BlockMacroProcessor", block_macro) end |
Instance Method Details
#blockdiag(tool, parent, source, format) ⇒ Object
102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/asciidoctor-diagram/blockdiag/extension.rb', line 102 def blockdiag(tool, parent, source, format) cmd_name = tool.downcase # On Debian based systems the Python 3.x packages python3-(act|block|nw|seq)diag executables with # a '3' suffix. alt_cmd_name = "#{tool.downcase}3" generate_stdin(which(parent, cmd_name, :alt_cmds => [alt_cmd_name]), format.to_s, source.to_s) do |tool_path, output_path| [tool_path, '-a', '-o', Platform.native_path(output_path), "-T#{format.to_s}", '-'] end end |