Class: AsciidoctorExtensions::KrokiHttpClient

Inherits:
Object
  • Object
show all
Defined in:
lib/asciidoctor/extensions/asciidoctor_kroki/extension.rb

Overview

Kroki HTTP client

Constant Summary collapse

REFERER =
"asciidoctor/kroki.rb/#{Asciidoctor::AsciidoctorKroki::VERSION}"

Class Method Summary collapse

Class Method Details

.get(uri, opts, _encoding, expected_content_type = nil) ⇒ Object



607
608
609
610
611
612
613
614
615
616
617
618
619
620
# File 'lib/asciidoctor/extensions/asciidoctor_kroki/extension.rb', line 607

def get(uri, opts, _encoding, expected_content_type = nil)
  parsed_uri = URI(uri)
  headers = opts.transform_keys { |key| "Kroki-Diagram-Options-#{key}" }
                .merge({ 'referer' => REFERER })
  request = ::Net::HTTP::Get.new(parsed_uri, headers)
  response = ::Net::HTTP.start(
    parsed_uri.hostname,
    parsed_uri.port,
    use_ssl: (parsed_uri.scheme == 'https')
  ) do |http|
    http.request(request)
  end
  handle_response(response, 'GET', uri, expected_content_type)
end

.post(uri, data, opts, _encoding, expected_content_type = nil) ⇒ Object



622
623
624
625
626
627
628
629
630
631
632
633
634
# File 'lib/asciidoctor/extensions/asciidoctor_kroki/extension.rb', line 622

def post(uri, data, opts, _encoding, expected_content_type = nil)
  headers = opts.transform_keys { |key| "Kroki-Diagram-Options-#{key}" }
                .merge({
                         'Content-Type' => 'text/plain',
                         'referer' => REFERER
                       })
  response = ::Net::HTTP.post(
    URI(uri),
    data,
    headers
  )
  handle_response(response, 'POST', uri, expected_content_type)
end