Class: Asciidoctor::Diagram::PlantUmlConverter
- Inherits:
-
Object
- Object
- Asciidoctor::Diagram::PlantUmlConverter
show all
- Includes:
- DiagramConverter
- Defined in:
- lib/asciidoctor-diagram/plantuml/converter.rb
Constant Summary
collapse
- CLASSPATH_ENV =
'DIAGRAM_PLANTUML_CLASSPATH'
- LIB_DIR =
File.expand_path('../..', File.dirname(__FILE__))
- PLANTUML_JARS =
if ENV.has_key?(CLASSPATH_ENV)
ENV[CLASSPATH_ENV].split(File::PATH_SEPARATOR)
else
begin
require 'asciidoctor-diagram/plantuml/classpath'
::Asciidoctor::Diagram::PlantUmlClasspath::JAR_FILES
rescue LoadError
raise "Could not load PlantUML. Eiter require 'asciidoctor-diagram-plantuml' or specify the location of the PlantUML JAR(s) using the 'DIAGRAM_PLANTUML_CLASSPATH' environment variable."
end
end
Instance Method Summary
collapse
#native_scaling?
Instance Method Details
#collect_options(source) ⇒ Object
35
36
37
38
39
|
# File 'lib/asciidoctor-diagram/plantuml/converter.rb', line 35
def collect_options(source)
{
:size_limit => source.attr('size-limit', '4096')
}
end
|
#convert(source, format, options) ⇒ Object
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
# File 'lib/asciidoctor-diagram/plantuml/converter.rb', line 41
def convert(source, format, options)
Java.load
code = source.code
case format
when :png
mime_type = 'image/png'
when :svg
mime_type = 'image/svg+xml'
when :txt, :utxt
mime_type = 'text/plain;charset=utf-8'
when :atxt
mime_type = 'text/plain'
else
raise "Unsupported format: #{format}"
end
= {
'Accept' => mime_type
}
size_limit = options[:size_limit]
if size_limit
['X-PlantUML-SizeLimit'] = size_limit
end
dot = source.find_command('dot', :alt_attrs => ['graphvizdot'], :raise_on_error => false)
if dot
['X-Graphviz'] = ::Asciidoctor::Diagram::Platform.host_os_path(dot)
end
response = Java.send_request(
:url => '/plantuml',
:body => code,
:headers =>
)
unless response[:code] == 200
raise Java.create_error("PlantUML image generation failed", response)
end
response[:body]
end
|
31
32
33
|
# File 'lib/asciidoctor-diagram/plantuml/converter.rb', line 31
def supported_formats
[:png, :svg, :txt, :atxt, :utxt]
end
|
#wrap_source(source) ⇒ Object
27
28
29
|
# File 'lib/asciidoctor-diagram/plantuml/converter.rb', line 27
def wrap_source(source)
PlantUMLPreprocessedSource.new(source, self.class.tag)
end
|