asciidoctor-plantuml 0.0.11 → 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b550934d0e6408099c74544fa93071a1c04f64392353e1a11a7388d1a897bc8a
4
- data.tar.gz: cd0627162cf7f60af7d2b9fc2e4a7edd20c36ac429e4e7340129281968a14422
3
+ metadata.gz: a0eec1ab5b66560c09d54f1c5a44f4ca764b41fd8112a2c1ba791de3936ff4d8
4
+ data.tar.gz: a806b6892710155ae5d36aee9e3fe0830f30d4606ec8c6b27b3533187f389f80
5
5
  SHA512:
6
- metadata.gz: 5d9131c6af8a5be72c7732afe20ac2fd9fd874c22774dafe0cfc37be4c94941d8ab3a1bddacdb973e9a4e7bff6b45a76c6d69b5bd9136375104d9415fff4cb0b
7
- data.tar.gz: 8a200585455b8937b6d4f2f7772d3f77321c38de64633a81b2525c38b5e55050f6948870b2010b829cb8b8ce0fb912f77f5e9792a9cd0e548f58e7f93fe4bc07
6
+ metadata.gz: d4924630cd2c797eed3741a6f1b70c2f8eba15b781884a7b76934d090869570615712dd637be42d472610acbf4ea13894c07319c059a213aa9a3c2559e4ac305
7
+ data.tar.gz: 4243885ff01513113b5e34412532196b708250cba696c0c094b7a77cb96c656b2302a60aabd37589a6ee398df401506b76cb929ed3ac5631efa54928af580dce
@@ -12,14 +12,16 @@ module Asciidoctor
12
12
  # PlantUML Configuration
13
13
  class Configuration
14
14
  DEFAULT_URL = ENV['PLANTUML_URL'] || ''
15
+ DEFAULT_ENCODING = ENV['PLANTUML_ENCODING'] || 'legacy'
15
16
 
16
- attr_accessor :url, :txt_enable, :svg_enable, :png_enable
17
+ attr_accessor :url, :txt_enable, :svg_enable, :png_enable, :encoding
17
18
 
18
19
  def initialize
19
20
  @url = DEFAULT_URL
20
21
  @txt_enable = true
21
22
  @svg_enable = true
22
23
  @png_enable = true
24
+ @encoding = DEFAULT_ENCODING
23
25
  end
24
26
  end
25
27
 
@@ -39,6 +41,13 @@ module Asciidoctor
39
41
  class Processor
40
42
  FORMATS = %w[png svg txt].freeze
41
43
  DEFAULT_FORMAT = FORMATS[0]
44
+
45
+ ENCODINGS = %w[legacy deflate].freeze
46
+ DEFAULT_ENCODING = ENCODINGS[0]
47
+
48
+ ENCODINGS_MAGIC_STRINGS_MAP = Hash.new('')
49
+ ENCODINGS_MAGIC_STRINGS_MAP['deflate'] = '~1'
50
+
42
51
  URI_SCHEMES_REGEXP = ::URI::DEFAULT_PARSER.make_regexp(%w[http https])
43
52
 
44
53
  class << self
@@ -46,6 +55,10 @@ module Asciidoctor
46
55
  FORMATS.include?(format)
47
56
  end
48
57
 
58
+ def valid_encoding?(encoding)
59
+ ENCODINGS.include?(encoding)
60
+ end
61
+
49
62
  def server_url
50
63
  PlantUml.configuration.url
51
64
  end
@@ -92,6 +105,7 @@ module Asciidoctor
92
105
  # the transcoder class in the PlantUML java code.
93
106
  def gen_url(text, format)
94
107
  result = ''
108
+ result += encoding_magic_prefix
95
109
  compressed_data = Zlib::Deflate.deflate(text)
96
110
  compressed_data.chars.each_slice(3) do |bytes|
97
111
  # print bytes[0], ' ' , bytes[1] , ' ' , bytes[2]
@@ -204,6 +218,10 @@ module Asciidoctor
204
218
  encode6bit(c4 & 0x3F).chr
205
219
  end
206
220
 
221
+ def encoding_magic_prefix
222
+ ENCODINGS_MAGIC_STRINGS_MAP[PlantUml.configuration.encoding]
223
+ end
224
+
207
225
  # Make a call to the PlantUML server with the simplest diagram possible
208
226
  # to check if the server is available or not.
209
227
  def check_server(check_url)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Asciidoctor
4
4
  module PlantUML
5
- VERSION = '0.0.11'
5
+ VERSION = '0.0.12'
6
6
  end
7
7
  end
@@ -118,6 +118,7 @@ ENDOFSTRING
118
118
  class PlantUmlTest < Test::Unit::TestCase
119
119
  GENURL = 'http://localhost:8080/plantuml/png/U9npA2v9B2efpStX2YrEBLBGjLFG20Q9Q4Bv804WIw4a8rKXiQ0W9pCviIGpFqzJmKh19p4fDOVB8JKl1QWT05kd5wq0'
120
120
  GENURL2 = 'http://localhost:8080/plantuml/png/U9npA2v9B2efpStXYdRszmqmZ8NGHh4mleAkdGAAa15G22Pc7Clba9gN0jGE00W75Cm0'
121
+ GENURL_ENCODING = 'http://localhost:8080/plantuml/png/~1U9npA2v9B2efpStX2YrEBLBGjLFG20Q9Q4Bv804WIw4a8rKXiQ0W9pCviIGpFqzJmKh19p4fDOVB8JKl1QWT05kd5wq0'
121
122
 
122
123
  def setup
123
124
  Asciidoctor::PlantUml.configure do |c|
@@ -165,6 +166,23 @@ class PlantUmlTest < Test::Unit::TestCase
165
166
  assert_equal GENURL2, element['src']
166
167
  end
167
168
 
169
+ def test_plantuml_block_processor_encoding
170
+ Asciidoctor::PlantUml.configure do |c|
171
+ c.encoding = 'deflate'
172
+ end
173
+
174
+ html = ::Asciidoctor.convert(StringIO.new(DOC_BASIC), backend: 'html5')
175
+ page = Nokogiri::HTML(html)
176
+
177
+ elements = page.css('img.plantuml')
178
+
179
+ assert_equal elements.size, 1
180
+
181
+ element = elements.first
182
+
183
+ assert_equal GENURL_ENCODING, element['src']
184
+ end
185
+
168
186
  def test_plantuml_id_attribute
169
187
  html = ::Asciidoctor.convert(StringIO.new(DOC_ID), backend: 'html5')
170
188
  page = Nokogiri::HTML(html)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asciidoctor-plantuml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Horacio Sanson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-01 00:00:00.000000000 Z
11
+ date: 2020-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler