module Asciidoctor::Diagram::BlockDiag
@private
Public Class Methods
define_processors(name)
click to toggle source
# File lib/asciidoctor-diagram/blockdiag/extension.rb, line 76 def self.define_processors(name) init = Proc.new do include ::Asciidoctor::Diagram::BlockDiag [:png, :pdf, :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
Public Instance Methods
blockdiag(tool, parent, source, format)
click to toggle source
# File lib/asciidoctor-diagram/blockdiag/extension.rb, line 102 def blockdiag(tool, parent, source, format) inherit_prefix = name 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" font_path = source.attr('fontpath', nil, inherit_prefix) generate_stdin(which(parent, cmd_name, :alt_cmds => [alt_cmd_name]), format.to_s, source.to_s) do |tool_path, output_path| args = [tool_path, '-a', '-o', Platform.native_path(output_path), "-T#{format.to_s}"] args << "-f#{Platform.native_path(font_path)}" if font_path args << '-' args end end