asciidoctor-diagram 1.3.0.preview.4 → 1.3.0

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: 0d2afa05e275154704010cd26743547999d25f7b
4
- data.tar.gz: 35f0709598867295eeca7435718eaad9e7f6cae4
3
+ metadata.gz: 3a2f204cc0c29acb26136512bd4a8d50b94eb19d
4
+ data.tar.gz: 0115d195b3546f4ab1a1967a45891769b4d28fb5
5
5
  SHA512:
6
- metadata.gz: 4c5137cb403ced6164b826f22c76f485c0bd75e89b6017ea83c96c939fe97987d5576e3caa808a8b3f42082e428098a831c379a97e5f1f445da3270ff4e6d041
7
- data.tar.gz: 1a4608f53e812b5c1cc205c24636d3fefaa5149c33410ca6ceace5402ef11d289695cc74a6846381b3689f3fd9ff127973bdc0104ea26a86e0649a57e3ec410c
6
+ metadata.gz: 8bedbbef25acb0ea9d0617b67521f8b92f57a66a730f58b35090e221936cc3ee3a1ff76af260f78f7ccec6e88467188744b048e9997701c46d667e37f2f142f6
7
+ data.tar.gz: fc0668cb0299126c80f392efccba75c8eda819a835e69b3c27c99fd57c50d1d4b312271bba3cbae7cbebf34a23dbd56a7adfd470a7a48fe8079fb3b4ae210345
@@ -1,3 +1,5 @@
1
+ require 'set'
2
+
1
3
  require_relative '../extensions'
2
4
  require_relative '../util/java'
3
5
 
@@ -5,19 +7,19 @@ module Asciidoctor
5
7
  module Diagram
6
8
  # @private
7
9
  module Ditaa
8
- JARS = ['ditaamini0_9.jar'].map do |jar|
10
+ JARS = ['ditaamini-0.10.jar'].map do |jar|
9
11
  File.expand_path File.join('../..', jar), File.dirname(__FILE__)
10
12
  end
11
13
  Java.classpath.concat JARS
12
14
 
13
- def ditaa(code, attrs)
15
+ def ditaa(code, source)
14
16
  Java.load
15
17
 
16
18
  response = Java.send_request(
17
19
  :url => '/ditaa',
18
20
  :body => code,
19
21
  :headers => {
20
- 'X-Options' => attrs.delete('options') || ''
22
+ 'X-Options' => source.options
21
23
  }
22
24
  )
23
25
 
@@ -29,25 +31,56 @@ module Asciidoctor
29
31
  end
30
32
 
31
33
  def self.included(mod)
32
- mod.register_format(:png, :image) do |c, _, attrs|
33
- ditaa(c.to_s, attrs)
34
+ mod.register_format(:png, :image) do |c, _, source|
35
+ ditaa(c.to_s, source)
34
36
  end
35
37
  end
36
38
 
37
39
  def create_source(parent, reader, attributes)
38
40
  source = super(parent, reader, attributes)
39
41
  source.extend DitaaSource
42
+
43
+ source.init_ditaa_options(parent, attributes)
44
+
40
45
  source
41
46
  end
42
47
 
43
48
  module DitaaSource
49
+ attr_reader :options
50
+
51
+ OPTIONS = {
52
+ 'scale' => lambda { |o, v| o << '--scale' << v if v },
53
+ 'tabs' => lambda { |o, v| o << '--tabs' << v if v },
54
+ 'background' => lambda { |o, v| o << '--background' << v if v },
55
+ 'antialias' => lambda { |o, v| o << '--no-antialias' if v == 'false' },
56
+ 'separation' => lambda { |o, v| o << '--no-separation' if v == 'false'},
57
+ 'round-corners' => lambda { |o, v| o << '--round-corners' if v == 'true'},
58
+ 'shadows' => lambda { |o, v| o << '--no-shadows' if v == 'false'},
59
+ 'debug' => lambda { |o, v| o << '--debug' if v == 'true'},
60
+ 'fixed-slope' => lambda { |o, v| o << '--fixed-slope' if v == 'true'},
61
+ 'transparent' => lambda { |o, v| o << '--transparent' if v == 'true'}
62
+ }
63
+
64
+ def init_ditaa_options(parent, attributes)
65
+ global_attributes = parent.document.attributes
66
+
67
+ options = []
68
+
69
+ OPTIONS.keys.each do |key|
70
+ value = attributes.delete(key) || global_attributes["ditaa-option-#{key}"]
71
+ OPTIONS[key].call(options, value)
72
+ end
73
+
74
+ @options = options.join(' ')
75
+ end
76
+
44
77
  def should_process?(image_file, image_metadata)
45
- super(image_file, image_metadata) || image_metadata['options'] != attributes['options']
78
+ super(image_file, image_metadata) || image_metadata['options'] != @options
46
79
  end
47
80
 
48
81
  def create_image_metadata
49
82
  metadata = super
50
- metadata['options'] = attributes['options']
83
+ metadata['options'] = @options
51
84
  metadata
52
85
  end
53
86
  end
@@ -84,9 +84,9 @@ module Asciidoctor
84
84
  # @param attributes [Hash] the attributes of the block or block macro
85
85
  # @return [Asciidoctor::AbstractBlock] a new block that replaces the original block or block macro
86
86
  def process(parent, reader_or_target, attributes)
87
- source = create_source(parent, reader_or_target, attributes)
87
+ source = create_source(parent, reader_or_target, attributes.dup)
88
88
 
89
- format = attributes.delete('format') || self.class.default_format
89
+ format = source.attributes.delete('format') || self.class.default_format
90
90
  format = format.to_sym if format.respond_to?(:to_sym)
91
91
 
92
92
  raise "Format undefined" unless format
@@ -98,9 +98,9 @@ module Asciidoctor
98
98
  begin
99
99
  case generator_info[:type]
100
100
  when :literal
101
- create_literal_block(parent, source, attributes, generator_info)
101
+ create_literal_block(parent, source, generator_info)
102
102
  else
103
- create_image_block(parent, source, attributes, format, generator_info)
103
+ create_image_block(parent, source, format, generator_info)
104
104
  end
105
105
  rescue => e
106
106
  text = "Failed to generate image: #{e.message}"
@@ -129,7 +129,7 @@ module Asciidoctor
129
129
  end
130
130
 
131
131
  private
132
- def create_image_block(parent, source, attributes, format, generator_info)
132
+ def create_image_block(parent, source, format, generator_info)
133
133
  image_name = "#{source.image_name}.#{format}"
134
134
  image_dir = image_output_dir(parent)
135
135
  image_file = parent.normalize_system_path image_name, image_dir
@@ -141,12 +141,12 @@ module Asciidoctor
141
141
  metadata = {}
142
142
  end
143
143
 
144
- image_attributes = attributes.dup
144
+ image_attributes = source.attributes
145
145
 
146
146
  if !File.exists?(image_file) || source.should_process?(image_file, metadata)
147
147
  params = IMAGE_PARAMS[format]
148
148
 
149
- result = instance_exec(source, parent, image_attributes, &generator_info[:generator])
149
+ result = instance_exec(source, parent, source, &generator_info[:generator])
150
150
 
151
151
  result.force_encoding(params[:encoding])
152
152
 
@@ -161,8 +161,8 @@ module Asciidoctor
161
161
  image_attributes['target'] = image_name
162
162
 
163
163
  scale = image_attributes['scale']
164
- if scalematch = /(\d+)%/.match(scale)
165
- scale_factor = scalematch[1].to_i / 100.0
164
+ if scalematch = /(\d+(?:\.\d+))/.match(scale)
165
+ scale_factor = scalematch[1].to_f
166
166
  else
167
167
  scale_factor = 1.0
168
168
  end
@@ -177,9 +177,9 @@ module Asciidoctor
177
177
  end
178
178
  end
179
179
 
180
- image_attributes['alt'] ||= if title_text = attributes['title']
180
+ image_attributes['alt'] ||= if title_text = image_attributes['title']
181
181
  title_text
182
- elsif target = attributes['target']
182
+ elsif target = image_attributes['target']
183
183
  (File.basename(target, File.extname(target)) || '').tr '_-', ' '
184
184
  else
185
185
  'Diagram'
@@ -213,8 +213,8 @@ module Asciidoctor
213
213
  parent.normalize_system_path(images_dir, base_dir)
214
214
  end
215
215
 
216
- def create_literal_block(parent, source, attributes, generator_info)
217
- literal_attributes = attributes.dup
216
+ def create_literal_block(parent, source, generator_info)
217
+ literal_attributes = source.attributes
218
218
  literal_attributes.delete('target')
219
219
 
220
220
  result = instance_exec(source, parent, &generator_info[:generator])
@@ -254,7 +254,7 @@ module Asciidoctor
254
254
  #
255
255
  # @return [FileSource] a FileSource
256
256
  def create_source(parent, target, attributes)
257
- FileSource.new(File.expand_path(target, parent.document.attributes['docdir']), attributes)
257
+ FileSource.new(File.expand_path(target, parent.document.base_dir), attributes)
258
258
  end
259
259
  end
260
260
 
@@ -366,7 +366,9 @@ module Asciidoctor
366
366
  end
367
367
 
368
368
  def code
369
- @code ||= File.read(@file_name)
369
+ lines = File.readlines(@file_name)
370
+ lines = ::Asciidoctor::Helpers.normalize_lines(lines)
371
+ @code ||= lines.join("\n")
370
372
  end
371
373
  end
372
374
  end
@@ -4,7 +4,7 @@ module Asciidoctor
4
4
  module Java
5
5
  def self.classpath
6
6
  @classpath ||= [
7
- File.expand_path(File.join('../..', 'asciidoctor-diagram-java-1.3.2.jar'), File.dirname(__FILE__))
7
+ File.expand_path(File.join('../..', 'asciidoctor-diagram-java-1.3.4.jar'), File.dirname(__FILE__))
8
8
  ]
9
9
  end
10
10
 
@@ -1,5 +1,5 @@
1
1
  module Asciidoctor
2
2
  module Diagram
3
- VERSION = "1.3.0.preview.4"
3
+ VERSION = "1.3.0"
4
4
  end
5
5
  end
Binary file
data/lib/plantuml.jar CHANGED
Binary file
data/spec/ditaa_spec.rb CHANGED
@@ -121,12 +121,14 @@ Doc Writer <doc@example.com>
121
121
 
122
122
  it "should support ditaa options as attributes" do
123
123
  doc = <<-eos
124
+ :ditaa-option-antialias: false
125
+ :ditaa-option-round-corners: true
124
126
  = Hello, PlantUML!
125
127
  Doc Writer <doc@example.com>
126
128
 
127
129
  == First Section
128
130
 
129
- [ditaa, options="--no-shadows --no-separation --round-corners --scale 2.5"]
131
+ [ditaa, shadows=false, separation=false, round-corners=false, scale=2.3]
130
132
  ----
131
133
  +--------+ +-------+ +-------+
132
134
  | | --+ ditaa +--> | |
@@ -157,7 +159,7 @@ Doc Writer <doc@example.com>
157
159
 
158
160
  == First Section
159
161
 
160
- [ditaa, options="{opts}"]
162
+ [ditaa, {opts}]
161
163
  ----
162
164
  +--------+ +-------+ +-------+
163
165
  | | --+ ditaa +--> | |
@@ -171,14 +173,14 @@ Doc Writer <doc@example.com>
171
173
  ----
172
174
  eos
173
175
 
174
- d = Asciidoctor.load StringIO.new(doc.sub('{opts}', 'no-shadow'))
176
+ d = Asciidoctor.load StringIO.new(doc.sub('{opts}', 'shadow=false'))
175
177
  b = d.find { |b| b.context == :image }
176
178
  target = b.attributes['target']
177
179
  mtime1 = File.mtime(target)
178
180
 
179
181
  sleep 1
180
182
 
181
- d = Asciidoctor.load StringIO.new(doc.sub('{opts}', 'round-corners'))
183
+ d = Asciidoctor.load StringIO.new(doc.sub('{opts}', 'round-corners=true'))
182
184
 
183
185
  mtime2 = File.mtime(target)
184
186
 
@@ -470,7 +470,7 @@ Doc Writer <doc@example.com>
470
470
 
471
471
  == First Section
472
472
 
473
- [plantuml, format="png", scale="150%"]
473
+ [plantuml, format="png", scale="1.5"]
474
474
  ----
475
475
  A -> B
476
476
  ----
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asciidoctor-diagram
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0.preview.4
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pepijn Van Eeckhoudt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-29 00:00:00.000000000 Z
11
+ date: 2015-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -81,7 +81,7 @@ files:
81
81
  - examples/README.adoc
82
82
  - examples/design.adoc
83
83
  - examples/features.adoc
84
- - lib/asciidoctor-diagram-java-1.3.2.jar
84
+ - lib/asciidoctor-diagram-java-1.3.4.jar
85
85
  - lib/asciidoctor-diagram.rb
86
86
  - lib/asciidoctor-diagram/blockdiag.rb
87
87
  - lib/asciidoctor-diagram/blockdiag/extension.rb
@@ -104,7 +104,7 @@ files:
104
104
  - lib/asciidoctor-diagram/util/svg.rb
105
105
  - lib/asciidoctor-diagram/util/which.rb
106
106
  - lib/asciidoctor-diagram/version.rb
107
- - lib/ditaamini0_9.jar
107
+ - lib/ditaamini-0.10.jar
108
108
  - lib/plantuml.jar
109
109
  - spec/blockdiag_spec.rb
110
110
  - spec/ditaa_spec.rb
@@ -127,12 +127,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
127
  version: '0'
128
128
  required_rubygems_version: !ruby/object:Gem::Requirement
129
129
  requirements:
130
- - - ">"
130
+ - - ">="
131
131
  - !ruby/object:Gem::Version
132
- version: 1.3.1
132
+ version: '0'
133
133
  requirements: []
134
134
  rubyforge_project:
135
- rubygems_version: 2.4.5
135
+ rubygems_version: 2.4.7
136
136
  signing_key:
137
137
  specification_version: 4
138
138
  summary: An extension for asciidoctor that adds support for UML diagram generation
data/lib/ditaamini0_9.jar DELETED
Binary file