class AsciidoctorExtensions::KrokiClient
Kroki
client
Constants
- SUPPORTED_HTTP_METHODS
Attributes
max_uri_length[R]
method[R]
server_url[R]
Public Class Methods
new(server_url, http_method, http_client, logger = ::Asciidoctor::LoggerManager.logger, max_uri_length = 4000)
click to toggle source
# File lib/asciidoctor/extensions/asciidoctor_kroki/extension.rb, line 326 def initialize(server_url, http_method, http_client, logger = ::Asciidoctor::LoggerManager.logger, max_uri_length = 4000) @server_url = server_url @max_uri_length = max_uri_length @http_client = http_client method = (http_method || 'adaptive').downcase if SUPPORTED_HTTP_METHODS.include?(method) @method = method else logger.warn "Invalid value '#{method}' for kroki-http-method attribute. The value must be either: 'get', 'post' or 'adaptive'. Proceeding using: 'adaptive'." @method = 'adaptive' end end
Public Instance Methods
get_image(kroki_diagram, encoding)
click to toggle source
# File lib/asciidoctor/extensions/asciidoctor_kroki/extension.rb, line 343 def get_image(kroki_diagram, encoding) type = kroki_diagram.type format = kroki_diagram.format text = kroki_diagram.text if @method == 'adaptive' || @method == 'get' uri = kroki_diagram.get_diagram_uri(server_url) if uri.length > @max_uri_length # The request URI is longer than the max URI length. if @method == 'get' # The request might be rejected by the server with a 414 Request-URI Too Large. # Consider using the attribute kroki-http-method with the value 'adaptive'. @http_client.get(uri, encoding) else @http_client.post("#{@server_url}/#{type}/#{format}", text, encoding) end else @http_client.get(uri, encoding) end else @http_client.post("#{@server_url}/#{type}/#{format}", text, encoding) end end
text_content(kroki_diagram)
click to toggle source
# File lib/asciidoctor/extensions/asciidoctor_kroki/extension.rb, line 339 def text_content(kroki_diagram) get_image(kroki_diagram, 'utf-8') end