rsyntaxtree 0.8.2a → 0.8.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
  SHA256:
3
- metadata.gz: 8467331de91fe3c6cbd77462780d08fe23d540bc0cc25e9d65f3583ac523f882
4
- data.tar.gz: 8021b25938b4a1b5a014fc89a4ae2a7f6b8da379e5d1432fb84771c29808a888
3
+ metadata.gz: 9fb3b6ae45edfeea2b1b280bfc432d7f3c669b235139638fba59c633b8326e70
4
+ data.tar.gz: 7c7d7e76f03a70eea5514c6d8d9bae87a4d05f78ee4ff9c63785da0058a38b9f
5
5
  SHA512:
6
- metadata.gz: e4586e403663e95ad871b22b45833a6b956068f8e8f300324b8b67cb96a30b83ac83b47f7a3de76823c1b230a3ceb99f36b3d1a7a38928228d4f8d824eafb172
7
- data.tar.gz: 745ea742aa872d4def42bd6ee9bff0b1d7813db20006f6a2c0ac7cbd4fbb657fa91e3bfb85b0dad6eddd452d839feda85623367e9cdfd971b78f48783610d3f5
6
+ metadata.gz: 8f4754c519c2687b25df411c9a5025cd93363dc9bcb20cf3c7ef3281ac01fe05cf7414d35b0eb565ea00c7b3aac8d83fb4a1bb016428f1ddcb13cde08e197de3
7
+ data.tar.gz: 9d3c8fa5126ca404f4d32ebc6b8af4d3feac4252d729acca6048501dea39e377ea597c8a7d406f98e46d8bb3fa22b43d3b5243678c8ae70e9fc437bf61cf2601
@@ -50,7 +50,7 @@ class Graph
50
50
  @col_leaf = "black"
51
51
  @col_trace = "black"
52
52
  end
53
-
53
+
54
54
  @main_height = img_get_txt_height("l", font, font_size)
55
55
  @sub_size = (font_size * SUBSCRIPT_CONST)
56
56
  @sub_space_width = img_get_txt_width("l", font, @sub_size)
@@ -63,7 +63,7 @@ class Graph
63
63
 
64
64
  gc = Draw.new
65
65
  gc.annotate(background, 0, 0, 0, 0, text) do |gc|
66
- gc.font = font
66
+ gc.font = font
67
67
  gc.pointsize = font_size
68
68
  gc.gravity = CenterGravity
69
69
  gc.stroke = 'none'
@@ -191,23 +191,24 @@ class Graph
191
191
  end
192
192
  return true if !@symmetrize
193
193
 
194
+ @check = []
194
195
  h.times do |i|
195
196
  curlevel = h - i - 1
196
- indent = 0
197
197
  e_arr.each_with_index do |j, idx|
198
198
  if (j.level == curlevel)
199
199
  # Draw a line to the parent element
200
200
  children = @e_list.get_children(j.id)
201
201
 
202
202
  tw = img_get_txt_width(j.content, @font, @font_size)
203
- if children.length > 1
203
+ if children.length > 0
204
204
  left, right = -1, -1
205
- children.each do |child|
205
+ children.each do |child|
206
206
  k = @e_list.get_id(child)
207
- kw = img_get_txt_width(k.content, @font, @font_size)
207
+ kw = img_get_txt_width(k.content, @font, @font_size)
208
208
  left = k.indent + kw / 2 if k.indent + kw / 2 < left or left == -1
209
209
  right = k.indent + kw / 2 if k.indent + kw / 2 > right
210
210
  end
211
+
211
212
  draw_element(left, curlevel, right - left, j.content, j.type)
212
213
  @e_list.set_indent(j.id, left + (right - left) / 2 - tw / 2)
213
214
 
@@ -215,40 +216,11 @@ class Graph
215
216
  k = @e_list.get_id(child)
216
217
  words = k.content.split(" ")
217
218
  dw = img_get_txt_width(k.content, @font, @font_size)
218
- unless @leafstyle == "nothing" && ETYPE_LEAF == k.type
219
- if (@leafstyle == "triangle" && ETYPE_LEAF == k.type && k.indent == j.indent && words.length > 0)
220
- txt_width = img_get_txt_width(k.content, @font, @font_size)
221
- triangle_to_parent(k.indent, curlevel + 1, dw, txt_width)
222
- elsif (@leafstyle == "auto" && ETYPE_LEAF == k.type && k.indent == j.indent)
223
- if words.length > 1 || k.triangle
224
- txt_width = img_get_txt_width(k.content, @font, @font_size)
225
- triangle_to_parent(k.indent, curlevel + 1, dw, txt_width)
226
- else
227
- line_to_parent(k.indent, curlevel + 1, dw, j.indent, tw)
228
- end
229
- else
230
- line_to_parent(k.indent, curlevel + 1, dw, j.indent, tw)
231
- end
232
- end
233
- end
234
219
 
235
- else
236
- unless children.empty?
237
- k = @e_list.get_id(children[0])
238
- kw = img_get_txt_width(k.content, @font, @font_size)
239
- left = k.indent
240
- right = k.indent + kw
241
- draw_element(left, curlevel, right - left, j.content, j.type)
242
- @e_list.set_indent(j.id, left + (right - left) / 2 - tw / 2)
220
+ children2 = @e_list.get_children(k.id)
243
221
 
244
- k = @e_list.get_id(children[0])
245
- words = k.content.split(" ")
246
- dw = img_get_txt_width(k.content, @font, @font_size)
247
- unless (@leafstyle == "nothing" && ETYPE_LEAF == k.type)
248
- if (@leafstyle == "triangle" && ETYPE_LEAF == k.type && words.length > 0)
249
- txt_width = img_get_txt_width(k.content, @font, @font_size)
250
- triangle_to_parent(k.indent, curlevel + 1, dw, txt_width)
251
- elsif (@leafstyle == "auto" && ETYPE_LEAF == k.type)
222
+ unless @leafstyle == "nothing" && ETYPE_LEAF == k.type
223
+ if (@leafstyle == "auto" && ETYPE_LEAF == k.type)
252
224
  if words.length > 1 || k.triangle
253
225
  txt_width = img_get_txt_width(k.content, @font, @font_size)
254
226
  triangle_to_parent(k.indent, curlevel + 1, dw, txt_width)
@@ -259,39 +231,41 @@ class Graph
259
231
  line_to_parent(k.indent, curlevel + 1, dw, j.indent, tw)
260
232
  end
261
233
  end
262
-
263
- else
264
- parent = @e_list.get_id(j.parent)
265
- pw = img_get_txt_width(parent.content, @font, @font_size)
266
- pleft = parent.indent
267
- pright = pleft + pw
268
- if curlevel == (h - 1) && e_arr.size == idx + 1
269
- e_arr.select{|l|l.level == curlevel}.each do |l|
270
- lw = img_get_txt_width(l.content, @font, @font_size)
271
- left = l.indent
272
- right = left + lw
273
- @e_list.set_indent(l.id, left + (right - left) / 2 - tw / 2)
274
- draw_element(left, curlevel, right - left, l.content, l.type)
275
- end
276
- break
277
- else
278
- left = j.indent
279
- right = left + tw
280
- if pw > tw
281
- left = pleft
282
- right = pright
283
- end
284
- draw_element(left, curlevel, right - left, j.content, j.type)
285
- @e_list.set_indent(j.id, left + (right - left) / 2 - tw / 2)
286
- end
287
234
  end
288
235
 
289
236
  end
237
+ elements = e_arr.select do |l|
238
+ l.level == curlevel && @e_list.get_children(l.id).empty?
239
+ end
240
+ process_terminal(elements, j, curlevel, tw)
290
241
  end
291
242
  end
292
243
  end
293
244
  end
294
245
 
246
+
247
+ def process_terminal(elements, j, curlevel, tw)
248
+ # parent = @e_list.get_id(j.parent)
249
+ # return unless parent
250
+ # pw = img_get_txt_width(parent.content, @font, @font_size)
251
+ # pleft = parent.indent
252
+ # pright = pleft + pw
253
+
254
+ elements.each.with_index do |l, idx|
255
+ lw = img_get_txt_width(l.content, @font, @font_size)
256
+ left = l.indent
257
+ right = left + lw
258
+ # if pw > tw
259
+ # left = pleft
260
+ # right = pright
261
+ # end
262
+ unless @check.include? l.id
263
+ draw_element(left, curlevel, right - left, l.content, l.type)
264
+ @check << l.id
265
+ end
266
+ end
267
+ end
268
+
295
269
  # Calculate top position from row (level)
296
270
  def row2px(row)
297
271
  @m[:b_topbot] + @e_height * row + (@m[:v_space] + @font_size) * row
@@ -99,6 +99,9 @@ EOD
99
99
  elsif /\A\-(.+)\-\z/ =~ main
100
100
  main = $1
101
101
  main_decoration= "underline"
102
+ elsif /\A\~(.+)\~\z/ =~ main
103
+ main = $1
104
+ main_decoration= "line-through"
102
105
  else
103
106
  main_decoration= ""
104
107
  end
@@ -137,6 +140,9 @@ EOD
137
140
  elsif /\A\-(.+)\-\z/ =~ sub
138
141
  sub = $1
139
142
  sub_decoration= "underline"
143
+ elsif /\A\~(.+)\~\z/ =~ sub
144
+ sub = $1
145
+ sub_decoration= "line-through"
140
146
  else
141
147
  sub_decoration= ""
142
148
  end
@@ -1,4 +1,4 @@
1
1
  module RSyntaxTree
2
- VERSION = "0.8.2a"
2
+ VERSION = "0.8.5"
3
3
  end
4
4
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsyntaxtree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2a
4
+ version: 0.8.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoichiro Hasebe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-01 00:00:00.000000000 Z
11
+ date: 2021-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rmagick
@@ -106,9 +106,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
106
106
  version: '0'
107
107
  required_rubygems_version: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - ">"
109
+ - - ">="
110
110
  - !ruby/object:Gem::Version
111
- version: 1.3.1
111
+ version: '0'
112
112
  requirements: []
113
113
  rubygems_version: 3.2.32
114
114
  signing_key: