asciidoctor-plantuml 0.0.4 → 0.0.5

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
  SHA1:
3
- metadata.gz: 4f6246a07cb6ee77b07fdecc5e32d30ef9def178
4
- data.tar.gz: 995226fa46cd4ea93df420da01adb17f9456e6e5
3
+ metadata.gz: d237e41919909a5acb269df07453ddaacb86f70e
4
+ data.tar.gz: 8a9bf93e2949704fd34072d77dad08ba7c6a1153
5
5
  SHA512:
6
- metadata.gz: b5718a88809d793a13d872a84e146acce5adb6d17561b15f2ad5f983d2b65fb876f5a3dbbb3d637e2f0bd5321cfb1944afbb14f87f920ecf5061c47b6467dcd1
7
- data.tar.gz: e0864e23a800018aa552c7a96df18bb7c7985ab4d7a08d1ec4c91d3244d7f7b45afc5960006053c5b7fb81e751c3c75e6b3110339c45f3f0f2af492b817ae145
6
+ metadata.gz: 8966c1145904166a1ba1ab7c9a90eea626814025dffed69a9db7c5e3f65941b781188a72c5271b966d949851a97fbeb129b17a9e8e1791a8d2529358e2b4622b
7
+ data.tar.gz: 381214dd99a3b8f99a4ba692cc741206e601bd4ad4ecc85decf4024e3af8f6dd9da9f17cd8ac20d300ce421c057d654b5ebd9625002b14a3cdb3b16d08a8a5e0
@@ -8,13 +8,13 @@ module Asciidoctor
8
8
 
9
9
  class Configuration
10
10
 
11
- DEFAULT_URL = ENV["PLANTUML_URL"] || "http://localhost:8080/plantuml"
11
+ DEFAULT_URL = ENV["PLANTUML_URL"] || ""
12
12
 
13
- attr_accessor :url, :test
13
+ attr_accessor :url, :txt_enable
14
14
 
15
15
  def initialize
16
16
  @url = DEFAULT_URL
17
- @test = false
17
+ @txt_enable = true
18
18
  end
19
19
  end
20
20
 
@@ -43,17 +43,27 @@ module Asciidoctor
43
43
  PlantUml::configuration.url
44
44
  end
45
45
 
46
- def plantuml_content(code, attrs = {})
46
+ def txt_enabled?
47
+ PlantUml::configuration.txt_enable
48
+ end
47
49
 
48
- testing = attrs["test"] == "true"
50
+ def plantuml_content(code, attrs = {})
49
51
 
50
52
  format = attrs["format"] || DEFAULT_FORMAT
51
53
 
54
+ if !valid_uri?(server_url)
55
+ return plantuml_server_unavailable_content(server_url, attrs)
56
+ end
57
+
52
58
  case format
53
59
  when "png"
54
60
  plantuml_img_content(code, format, attrs)
55
61
  when "txt"
56
- plantuml_txt_content(code, format, attrs)
62
+ if txt_enabled?
63
+ plantuml_txt_content(code, format, attrs)
64
+ else
65
+ plantuml_invalid_content(format, attrs)
66
+ end
57
67
  when "svg"
58
68
  plantuml_img_content(code, format, attrs)
59
69
  else
@@ -62,21 +72,23 @@ module Asciidoctor
62
72
  end
63
73
 
64
74
  def plantuml_txt_content(code, format, attrs = {})
65
- url = gen_url(code, format)
66
- content = "<div class=\"listingblock\">"
67
- content += "<div class=\"content\">"
68
- content += "<pre "
69
- content +="id=\"#{attrs['id']}\" " if attrs['id']
70
- content +="class=\"plantuml\">\n"
71
-
72
75
  begin
76
+ url = gen_url(code, format)
73
77
  open(url) do |f|
74
- content += f.read
78
+ plantuml_ascii_content(f.read, format, attrs)
75
79
  end
76
80
  rescue
77
- content += "Failed to query PlantUML server #{url}"
81
+ plantuml_img_content(code, format, attrs)
78
82
  end
83
+ end
79
84
 
85
+ def plantuml_ascii_content(code, format, attrs = {})
86
+ content = "<div class=\"listingblock\">"
87
+ content += "<div class=\"content\">"
88
+ content += "<pre "
89
+ content +="id=\"#{attrs['id']}\" " if attrs['id']
90
+ content +="class=\"plantuml\">\n"
91
+ content += code
80
92
  content +="</pre>"
81
93
  content += "</div>"
82
94
  content += "</div>"
@@ -178,6 +190,9 @@ module Asciidoctor
178
190
  return false
179
191
  end
180
192
 
193
+ def valid_uri?(uri)
194
+ !(uri =~ /\A#{URI::regexp(['http', 'https'])}\z/).nil?
195
+ end
181
196
 
182
197
  def create_plantuml_block(parent, content)
183
198
  Asciidoctor::Block.new parent, :pass, :content_model => :raw,
@@ -1,5 +1,5 @@
1
1
  module Asciidoctor
2
2
  module PlantUML
3
- VERSION = "0.0.4"
3
+ VERSION = "0.0.5"
4
4
  end
5
5
  end
@@ -7,7 +7,7 @@ require "asciidoctor-plantuml"
7
7
  DOC_BASIC = <<-eos
8
8
  = Hello PlantUML!
9
9
 
10
- [plantuml, format="png", test="true"]
10
+ [plantuml, format="png"]
11
11
  --
12
12
  User -> (Start)
13
13
  User --> (Use the application) : Label
@@ -17,7 +17,7 @@ eos
17
17
  DOC_BASIC2 = <<-eos
18
18
  = Hello PlantUML!
19
19
 
20
- [plantuml, format="png", test="true"]
20
+ [plantuml, format="png"]
21
21
  @startuml
22
22
  User -> (Start)
23
23
  User --> (Use the application) : Label
@@ -27,7 +27,7 @@ eos
27
27
  DOC_ID = <<-eos
28
28
  = Hello PlantUML!
29
29
 
30
- [plantuml, format="png", test="true", id="myId"]
30
+ [plantuml, format="png", id="myId"]
31
31
  User -> (Start)
32
32
  User --> (Use the application) : Label
33
33
  eos
@@ -35,7 +35,7 @@ eos
35
35
  DOC_DIM = <<-eos
36
36
  = Hello PlantUML!
37
37
 
38
- [plantuml, format="png", test="true", width="100px", height="50px"]
38
+ [plantuml, format="png", width="100px", height="50px"]
39
39
  User -> (Start)
40
40
  User --> (Use the application) : Label
41
41
  eos
@@ -43,7 +43,7 @@ eos
43
43
  DOC_ALT = <<-eos
44
44
  = Hello PlantUML!
45
45
 
46
- [plantuml, format="png", test="true", alt="alt"]
46
+ [plantuml, format="png", alt="alt"]
47
47
  User -> (Start)
48
48
  User --> (Use the application) : Label
49
49
  eos
@@ -51,7 +51,7 @@ eos
51
51
  DOC_BAD_FORMAT = <<-eos
52
52
  = Hello PlantUML!
53
53
 
54
- [plantuml, format="jpg", test="true"]
54
+ [plantuml, format="jpg"]
55
55
  User -> (Start)
56
56
  User --> (Use the application) : Label
57
57
  eos
@@ -59,19 +59,29 @@ eos
59
59
  DOC_MULTI = <<-eos
60
60
  = Hello PlantUML!
61
61
 
62
- [plantuml, format="png", test="true"]
62
+ [plantuml, format="png"]
63
63
  User -> (Start)
64
64
  User --> (Use the application) : Label
65
65
 
66
- [plantuml, format="png", test="true"]
66
+ [plantuml, format="png"]
67
67
  User -> (Start)
68
68
  User --> (Use the application) : Label
69
69
 
70
- [plantuml, format="txt", test="true"]
70
+ [plantuml, format="txt"]
71
71
  User -> (Start)
72
72
  User --> (Use the application) : Label
73
73
  eos
74
74
 
75
+ DOC_TXT = <<-eos
76
+ = Hello PlantUML!
77
+
78
+ [plantuml, format="txt"]
79
+ --
80
+ User -> (Start)
81
+ User --> (Use the application) : Label
82
+ --
83
+ eos
84
+
75
85
  class PlantUmlTest < Test::Unit::TestCase
76
86
 
77
87
  GENURL = "http://localhost:8080/plantuml/png/U9npA2v9B2efpStX2YrEBLBGjLFG20Q9Q4Bv804WIw4a8rKXiQ0W9pCviIGpFqzJmKh19p4fDOVB8JKl1QWT05kd5wq0"
@@ -79,6 +89,7 @@ class PlantUmlTest < Test::Unit::TestCase
79
89
  def setup
80
90
  Asciidoctor::PlantUml.configure do |c|
81
91
  c.url = "http://localhost:8080/plantuml"
92
+ c.txt_enable = true
82
93
  end
83
94
  end
84
95
 
@@ -168,11 +179,10 @@ class PlantUmlTest < Test::Unit::TestCase
168
179
  page = Nokogiri::HTML(html)
169
180
 
170
181
  elements = page.css('img.plantuml')
182
+ assert elements.size >= 2
171
183
 
172
- assert_equal elements.size, 2
173
-
174
- elements = page.css('pre.plantuml')
175
- assert_equal elements.size, 1
184
+ elements = page.css('.plantuml-error')
185
+ assert_equal elements.size, 0
176
186
 
177
187
  end
178
188
 
@@ -186,8 +196,59 @@ class PlantUmlTest < Test::Unit::TestCase
186
196
  page = Nokogiri::HTML(html)
187
197
 
188
198
  elements = page.css('img.plantuml')
189
- assert_equal elements.size, 2
199
+ assert_equal elements.size, 3
200
+
201
+ elements = page.css('.plantuml-error')
202
+ assert_equal elements.size, 0
203
+ end
204
+
205
+ def test_plantuml_invalid_uri
206
+
207
+ Asciidoctor::PlantUml.configure do |c|
208
+ c.url = "ftp://test.com"
209
+ end
210
+
211
+ html = ::Asciidoctor.convert(StringIO.new(DOC_BASIC), backend: "html5")
212
+ page = Nokogiri::HTML(html)
213
+ elements = page.css('pre.plantuml-error')
214
+ assert_equal elements.size, 1
215
+ end
216
+
217
+ def test_plantuml_nil_uri
218
+
219
+ Asciidoctor::PlantUml.configure do |c|
220
+ c.url = nil
221
+ end
190
222
 
223
+ html = ::Asciidoctor.convert(StringIO.new(DOC_BASIC), backend: "html5")
224
+ page = Nokogiri::HTML(html)
225
+ elements = page.css('pre.plantuml-error')
226
+ assert_equal elements.size, 1
191
227
  end
192
228
 
229
+ def test_plantuml_empty_uri
230
+
231
+ Asciidoctor::PlantUml.configure do |c|
232
+ c.url = ""
233
+ end
234
+
235
+ html = ::Asciidoctor.convert(StringIO.new(DOC_BASIC), backend: "html5")
236
+ page = Nokogiri::HTML(html)
237
+ elements = page.css('pre.plantuml-error')
238
+ assert_equal elements.size, 1
239
+ end
240
+
241
+ def test_disable_txt
242
+
243
+ Asciidoctor::PlantUml.configure do |c|
244
+ c.url = "http://localhost:8080/plantuml"
245
+ c.txt_enable = false
246
+ end
247
+
248
+ html = ::Asciidoctor.convert(StringIO.new(DOC_TXT), backend: "html5")
249
+ page = Nokogiri::HTML(html)
250
+ elements = page.css('pre.plantuml-error')
251
+ assert_equal elements.size, 1
252
+
253
+ end
193
254
  end
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.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Horacio Sanson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-28 00:00:00.000000000 Z
11
+ date: 2016-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler