rsyntaxtree 0.5.1 → 0.6.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.
data/README.md CHANGED
@@ -27,7 +27,7 @@ For the command-line interface, type `$rsyntaxtree -h` after installation. Here'
27
27
  where [options] are:
28
28
  --outdir, -o <s>: Output directory (default: present working directory) (default: ./)
29
29
  --format, -f <s>: Output format: png, pdf, or svg (default: png)
30
- --leafstyle, -l <s>: visual style of tree leaves: triangle, bar, or nothing (default: triangle)
30
+ --leafstyle, -l <s>: visual style of tree leaves: auto, triangle, bar, or nothing (default: auto)
31
31
  --fontstyle, -n <s>: Font style: sans-serif, serif, jp-gothic, jp-mincho, cjk (default: cjk)
32
32
  --font, -t <s>: Path to a ttf font used to generate tree
33
33
  --fontsize, -s <i>: Font size: 8-20 (default: 16)
@@ -39,7 +39,9 @@ For the command-line interface, type `$rsyntaxtree -h` after installation. Here'
39
39
 
40
40
  ### Tips
41
41
 
42
- Every branch or leaf of a tree must belong to a node. To create a node, place a label right next to the opening bracket. Arbitrary number of branches can follow with a preceding space. When a node has one and only one leaf and the leaf contains more than one space characters, the node is treated as a phrase and a triangle (not just a vertical bar) will be between the node label and the leaf).
42
+ Every branch or leaf of a tree must belong to a node. To create a node, place a label right next to the opening bracket. Arbitrary number of branches can follow with a preceding space.
43
+
44
+ There are several modes in which the shape of connectors between a terminal node and its leaf are drawn differently (auto, triangle, bar, and nothing). In auto mode, a triangle is used if the leaf contains one or more spaces inside (i.e. if it&#8217;s a phrase), but if it contains no spaces (i.e. if it is just a word), a straight bar will be drawn instead (unless the leaf contains a "^" symbol at the end which makes it a single-word phrase).
43
45
 
44
46
  You can put a subscript to any node by putting the _ character between the main label and the subscript. For example, NP_TOP will be rendered as NP<sub>TOP</sub>. Or you can select the &#8220;Auto subscript&#8221; option so that nodes of the same label will be automatically numbered. (e.g. NP<sub>1</sub>, NP<sub>2</sub>)</p>
45
47
 
@@ -47,11 +49,11 @@ You can put a subscript to any node by putting the _ character between the main
47
49
 
48
50
  Bracket notation (auto-subscript-on):
49
51
 
50
- [NP [NP [ART a] [N table]] [PP [P near] [NP [ART the] [N door]]]]
52
+ [S [NP RSyntaxTree^][VP [V generates][NP multilingual syntax trees]]]
51
53
 
52
54
  Resulting PNG
53
55
 
54
- ![a table near the door](http://yohasebe.com/img/rsyntaxtree_example.png)
56
+ ![RSyntaxTree generates multilingual syntax trees](http://yohasebe.com/img/rsyntaxtree_example3.png)
55
57
 
56
58
  ### Development
57
59
 
data/bin/rsyntaxtree CHANGED
@@ -12,7 +12,7 @@ opts = Trollop::options do
12
12
  RSyntaxTree, (linguistic) syntax tree generator written in Ruby.
13
13
 
14
14
  Usage:
15
- rsyntaxtree [options] "[NP [N bracket] [NP notation]]]"
15
+ rsyntaxtree [options] "[VP [VP [V set] [NP bracket notation]] [ADV here]]"
16
16
  where [options] are:
17
17
  EOS
18
18
 
@@ -20,8 +20,8 @@ EOS
20
20
  :default => "./"
21
21
  opt :format, "Output format: png, pdf, or svg",
22
22
  :default => "png"
23
- opt :leafstyle, "visual style of tree leaves: triangle, bar, or nothing",
24
- :default => "triangle"
23
+ opt :leafstyle, "visual style of tree leaves: auto, triangle, bar, or nothing",
24
+ :default => "auto"
25
25
  opt :fontstyle, "Font style (available when ttf font is specified): sans-serif, serif, jp-gothic, jp-mincho, cjk",
26
26
  :default => "cjk"
27
27
  opt :font, "Path to a ttf font used to generate tree (optional)", :type => String
@@ -37,7 +37,7 @@ end
37
37
 
38
38
  Trollop::die :outdir, "must be an exsting directory path" unless FileTest::directory?(opts[:outdir])
39
39
  Trollop::die :format, "must be png or svg" unless /\A(png|pdf|svg)\z/ =~ opts[:format]
40
- Trollop::die :leafstyle, "must be triangle, bar, or nothing" unless /\A(triangle|bar|nothing)\z/ =~ opts[:leafstyle]
40
+ Trollop::die :leafstyle, "must be auto, triangle, bar, or nothing" unless /\A(auto|triangle|bar|nothing)\z/ =~ opts[:leafstyle]
41
41
  Trollop::die :fontstyle, "must be sans-serif, serif, jp-gothic, jp-mincho, or cjk" unless /\A(sans\-serif|serif|jp\-gothic|jp\-mincho|cjk)\z/ =~ opts[:fontstyle]
42
42
  Trollop::die :font, "must be path to an existing ttf font" if opts[:font] && !File::exists?(opts[:font])
43
43
  Trollop::die :fontsize, "must be in the range 8-20" unless opts[:fontsize] >= 8 && opts[:fontsize] <= 20
@@ -33,15 +33,22 @@ ETYPE_LEAF = 2
33
33
 
34
34
  class Element
35
35
 
36
- attr_accessor :id, :parent, :type, :content, :level, :width, :indent
37
- def initialize(id = 0, parent = 0, content = NULL, level = 0, type = ETYPE_LEAF)
36
+ attr_accessor :id, :parent, :type, :content, :level, :width, :indent, :triangle
37
+ def initialize(id = 0, parent = 0, content = "", level = 0, type = ETYPE_LEAF)
38
38
  @id = id # Unique element id
39
39
  @parent = parent # Parent element id
40
40
  @type = type # Element type
41
- @content = content.strip # The actual element content
42
41
  @level = level # Element level in the tree (0=top etc...)
43
42
  @width = 0 # Width of the element in pixels
44
43
  @indent = 0 # Drawing offset
44
+ # content = content.strip
45
+ if /\A.+\^\z/ =~ content.strip
46
+ @content = content.gsub("^"){""} # The actual element content
47
+ @triangle = true # draw triangle instead of stright bar when in auto mode
48
+ else
49
+ @content = content.gsub("^"){""} # The actual element content
50
+ @triangle = false # draw triangle instead of stright bar when in auto mode
51
+ end
45
52
  end
46
53
 
47
54
  # Debug helper function
@@ -33,9 +33,10 @@ include Magick
33
33
 
34
34
  # constant variables are already set in tree_graph.rb
35
35
 
36
- class SVGGraph
37
36
 
38
- def initialize(e_list, symmetrize = true, color = true, leafstyle = "triangle",
37
+ class SVGGraph
38
+
39
+ def initialize(e_list, symmetrize = true, color = true, leafstyle = "auto",
39
40
  font = "Helvetica", font_size = 10, simple = false)
40
41
 
41
42
  # Store parameters
@@ -52,7 +53,7 @@ class SVGGraph
52
53
  @e_height = @font_size + E_PADD * 2
53
54
  h = @e_list.get_level_height
54
55
  w = calc_level_width(0)
55
- w_px = w + B_SIDE * 2
56
+ w_px = w + B_SIDE
56
57
  h_px = h * @e_height + (h-1) * (V_SPACE + @font_size) + B_TOPBOT * 2
57
58
  @height = h_px
58
59
  @width = w_px
@@ -210,21 +211,25 @@ EOD
210
211
  end
211
212
 
212
213
  # Draw a triangle between child/parent elements
213
- def triangle_to_parent(fromX, fromY, fromW, toW, textW)
214
+ def triangle_to_parent(fromX, fromY, fromW, toW, textW, symmetrize = true)
214
215
  if (fromY == 0)
215
216
  return
216
217
  end
217
-
218
+
218
219
  toX = fromX
219
-
220
- fromTop = row2px(fromY)
221
-
222
220
  fromCenter = (fromX + fromW / 2 + B_SIDE)
223
- fromLeft1 = (fromCenter + textW / 2)
224
- fromLeft2 = (fromCenter - textW / 2)
225
-
221
+
222
+ fromTop = row2px(fromY).ceil
223
+ fromLeft1 = (fromCenter + textW / 2).ceil
224
+ fromLeft2 = (fromCenter - textW / 2).ceil
226
225
  toBot = (row2px(fromY - 1) + @e_height)
227
- toLeft = (toX + toW / 2 + B_SIDE)
226
+
227
+ if symmetrize
228
+ toLeft = (toX + textW / 2 + B_SIDE)
229
+ else
230
+ toLeft = (toX + textW / 2 + B_SIDE * 3)
231
+ end
232
+
228
233
  polygon_data = @polygon_styles.sub(/X1/, fromLeft1.ceil.to_s)
229
234
  polygon_data = polygon_data.sub(/Y1/, fromTop.ceil.to_s)
230
235
  polygon_data = polygon_data.sub(/X2/, fromLeft2.ceil.to_s)
@@ -233,6 +238,8 @@ EOD
233
238
  @tree_data += polygon_data.sub(/Y3/, toBot.ceil.to_s)
234
239
  end
235
240
 
241
+
242
+
236
243
  # If a node element text is wider than the sum of it's
237
244
  # child elements, then the child elements need to
238
245
  # be resized to even out the space. This function
@@ -345,10 +352,17 @@ EOD
345
352
  draw_element(x, i, cw, j.content, j.type)
346
353
  if(j.parent != 0 )
347
354
  words = j.content.split(" ")
348
- unless @leafstyle == "nothing" && ETYPE_LEAF == j.type
349
- if (@leafstyle == "triangle" && ETYPE_LEAF == j.type && x == parent_indent && words.length > 1)
355
+ unless @leafstyle == "nothing" && ETYPE_LEAF == j.type
356
+ if (@leafstyle == "triangle" && ETYPE_LEAF == j.type && x == parent_indent && words.length > 0)
350
357
  txt_width = img_get_txt_width(j.content, @font, @font_size)
351
358
  triangle_to_parent(x, i, cw, @e_list.get_element_width(j.parent), txt_width)
359
+ elsif (@leafstyle == "auto" && ETYPE_LEAF == j.type && x == parent_indent)
360
+ if words.length > 1 || j.triangle
361
+ txt_width = img_get_txt_width(j.content, @font, @font_size)
362
+ triangle_to_parent(x, i, cw, @e_list.get_element_width(j.parent), txt_width, @symmetrize)
363
+ else
364
+ line_to_parent(x, i, cw, @e_list.get_indent(j.parent), @e_list.get_element_width(j.parent))
365
+ end
352
366
  else
353
367
  line_to_parent(x, i, cw, @e_list.get_indent(j.parent), @e_list.get_element_width(j.parent))
354
368
  end
@@ -384,10 +398,17 @@ EOD
384
398
  k = @e_list.get_id(child)
385
399
  words = k.content.split(" ")
386
400
  dw = img_get_txt_width(k.content, @font, @font_size)
387
- unless @leafstyle == "nothing" && ETYPE_LEAF == k.type
388
- if (@leafstyle == "triangle" && ETYPE_LEAF == k.type && k.indent == j.indent && words.length > 1)
401
+ unless @leafstyle == "nothing" && ETYPE_LEAF == k.type
402
+ if (@leafstyle == "triangle" && ETYPE_LEAF == k.type && k.indent == j.indent && words.length > 0)
389
403
  txt_width = img_get_txt_width(k.content, @font, @font_size)
390
404
  triangle_to_parent(k.indent, curlevel + 1, dw, tw, txt_width)
405
+ elsif (@leafstyle == "auto" && ETYPE_LEAF == k.type && k.indent == j.indent)
406
+ if words.length > 1 || k.triangle
407
+ txt_width = img_get_txt_width(k.content, @font, @font_size)
408
+ triangle_to_parent(k.indent, curlevel + 1, dw, tw, txt_width)
409
+ else
410
+ line_to_parent(k.indent, curlevel + 1, dw, j.indent, tw)
411
+ end
391
412
  else
392
413
  line_to_parent(k.indent, curlevel + 1, dw, j.indent, tw)
393
414
  end
@@ -422,10 +443,17 @@ EOD
422
443
  words = k.content.split(" ")
423
444
  dw = img_get_txt_width(k.content, @font, @font_size)
424
445
  unless @leafstyle == "nothing" && ETYPE_LEAF == k.type
425
- if (@leafstyle == "triangle" && ETYPE_LEAF == k.type && words.length > 1)
446
+ if (@leafstyle == "triangle" && ETYPE_LEAF == k.type && words.length > 0)
426
447
  txt_width = img_get_txt_width(k.content, @font, @font_size)
427
448
  triangle_to_parent(k.indent, curlevel + 1, dw,
428
449
  @e_list.get_element_width(k.parent), txt_width)
450
+ elsif (@leafstyle == "auto" && ETYPE_LEAF == k.type)
451
+ if words.length > 1 || k.triangle
452
+ txt_width = img_get_txt_width(k.content, @font, @font_size)
453
+ triangle_to_parent(k.indent, curlevel + 1, dw, tw, txt_width)
454
+ else
455
+ line_to_parent(k.indent, curlevel + 1, dw, j.indent, tw)
456
+ end
429
457
  else
430
458
  line_to_parent(k.indent, curlevel + 1, dw, j.indent, tw)
431
459
  end
@@ -42,7 +42,7 @@ B_TOPBOT = 5
42
42
 
43
43
  class TreeGraph
44
44
 
45
- def initialize(e_list, symmetrize = true, color = true, terminal = "triangle",
45
+ def initialize(e_list, symmetrize = true, color = true, terminal = "auto",
46
46
  font = "Helvetica", font_size = 10, simple = false)
47
47
 
48
48
  # Store parameters
@@ -113,7 +113,7 @@ class TreeGraph
113
113
 
114
114
  # Add the element into the tree (draw it)
115
115
  def draw_element(x, y, w, string, type)
116
-
116
+ string = string.sub(/\^\z/){""}
117
117
  # Calculate element dimensions and position
118
118
  if (type == ETYPE_LEAF) and @terminal == "nothing"
119
119
  top = row2px(y - 1) + (@font_size * 1.5)
@@ -201,7 +201,7 @@ class TreeGraph
201
201
  end
202
202
 
203
203
  # Draw a triangle between child/parent elements
204
- def triangle_to_parent(fromX, fromY, fromW, toX, textW)
204
+ def triangle_to_parent(fromX, fromY, fromW, toX, textW, symmetrize = true)
205
205
  if (fromY == 0)
206
206
  return
207
207
  end
@@ -213,8 +213,12 @@ class TreeGraph
213
213
  fromLeft1 = (fromCenter + textW / 2).ceil
214
214
  fromLeft2 = (fromCenter - textW / 2).ceil
215
215
  toBot = (row2px(fromY - 1) + @e_height)
216
- toLeft = (toX + textW / 2 + B_SIDE * 2)
217
-
216
+ if symmetrize
217
+ toLeft = (toX + textW / 2 + B_SIDE)
218
+ else
219
+ toLeft = (toX + textW / 2 + B_SIDE * 3)
220
+ end
221
+
218
222
  @gc.fill("none")
219
223
  @gc.stroke @col_line
220
224
  @gc.stroke_width 1
@@ -334,9 +338,16 @@ class TreeGraph
334
338
  if(j.parent != 0 )
335
339
  words = j.content.split(" ")
336
340
  unless @terminal == "nothing" && ETYPE_LEAF == j.type
337
- if (@terminal == "triangle" && ETYPE_LEAF == j.type && x == parent_indent && words.length > 1)
341
+ if (@terminal == "triangle" && ETYPE_LEAF == j.type && x == parent_indent && words.length > 0)
338
342
  txt_width = img_get_txt_width(j.content, @font, @font_size)
339
343
  triangle_to_parent(x, i, cw, @e_list.get_element_width(j.parent), txt_width)
344
+ elsif (@terminal == "auto" && ETYPE_LEAF == j.type && x == parent_indent)
345
+ if words.length > 1 || j.triangle
346
+ txt_width = img_get_txt_width(j.content, @font, @font_size)
347
+ triangle_to_parent(x, i, cw, @e_list.get_element_width(j.parent), txt_width, @symmetrize)
348
+ else
349
+ line_to_parent(x, i, cw, @e_list.get_indent(j.parent), @e_list.get_element_width(j.parent))
350
+ end
340
351
  else
341
352
  line_to_parent(x, i, cw, @e_list.get_indent(j.parent), @e_list.get_element_width(j.parent))
342
353
  end
@@ -374,9 +385,16 @@ class TreeGraph
374
385
  words = k.content.split(" ")
375
386
  dw = img_get_txt_width(k.content, @font, @font_size)
376
387
  unless @terminal == "nothing" && ETYPE_LEAF == k.type
377
- if (@terminal == "triangle" && ETYPE_LEAF == k.type && k.indent == j.indent && words.length > 1)
388
+ if (@terminal == "triangle" && ETYPE_LEAF == k.type && k.indent == j.indent && words.length > 0)
378
389
  txt_width = img_get_txt_width(k.content, @font, @font_size)
379
390
  triangle_to_parent(k.indent, curlevel + 1, dw, tw, txt_width)
391
+ elsif (@terminal == "auto" && ETYPE_LEAF == k.type && k.indent == j.indent)
392
+ if words.length > 1 || k.triangle
393
+ txt_width = img_get_txt_width(k.content, @font, @font_size)
394
+ triangle_to_parent(k.indent, curlevel + 1, dw, tw, txt_width)
395
+ else
396
+ line_to_parent(k.indent, curlevel + 1, dw, j.indent, tw)
397
+ end
380
398
  else
381
399
  line_to_parent(k.indent, curlevel + 1, dw, j.indent, tw)
382
400
  end
@@ -411,10 +429,17 @@ class TreeGraph
411
429
  words = k.content.split(" ")
412
430
  dw = img_get_txt_width(k.content, @font, @font_size)
413
431
  unless @terminal == "nothing" && ETYPE_LEAF == k.type
414
- if (@terminal == "triangle" && ETYPE_LEAF == k.type && words.length > 1)
432
+ if (@terminal == "triangle" && ETYPE_LEAF == k.type && words.length > 0)
415
433
  txt_width = img_get_txt_width(k.content, @font, @font_size)
416
434
  triangle_to_parent(k.indent, curlevel + 1, dw,
417
435
  @e_list.get_element_width(k.parent), txt_width)
436
+ elsif (@terminal == "auto" && ETYPE_LEAF == k.type)
437
+ if words.length > 1 || k.triangle
438
+ txt_width = img_get_txt_width(k.content, @font, @font_size)
439
+ triangle_to_parent(k.indent, curlevel + 1, dw, @e_list.get_element_width(k.parent), txt_width)
440
+ else
441
+ line_to_parent(k.indent, curlevel + 1, dw, j.indent, tw)
442
+ end
418
443
  else
419
444
  line_to_parent(k.indent, curlevel + 1, dw, j.indent, tw)
420
445
  end
@@ -1,4 +1,4 @@
1
1
  module RSyntaxTree
2
- VERSION = "0.5.1"
2
+ VERSION = "0.6.5"
3
3
  end
4
4
 
data/lib/rsyntaxtree.rb CHANGED
@@ -68,6 +68,10 @@ class RSGenerator
68
68
  new_params["font"] = FONT_DIR + "/ipamp.ttf"
69
69
  elsif value == "cjk"
70
70
  new_params["font"] = FONT_DIR + "/wqy-zenhei.ttf"
71
+ elsif value == "aru"
72
+ new_params["font"] = FONT_DIR + "/ArialUnicode.ttf"
73
+ elsif value == "tnr"
74
+ new_params["font"] = FONT_DIR + "/TimesNewRoman.ttf"
71
75
  end
72
76
  else
73
77
  new_params[key] = value
@@ -81,7 +85,7 @@ class RSGenerator
81
85
  "autosub" => false,
82
86
  "fontsize" => 18,
83
87
  "format" => "png",
84
- "leafstyle" => "triangle",
88
+ "leafstyle" => "auto",
85
89
  "font" => FONT_DIR + "/ipagp.ttf",
86
90
  "filename" => "syntree",
87
91
  "data" => "",
@@ -17,13 +17,14 @@ $(function(){
17
17
  }
18
18
 
19
19
  function draw_graph(data){
20
- $("#result").html("<img id='tree_image'>");
21
20
  $.ajax({
22
21
  url: 'draw_png',
23
22
  type: 'POST',
24
23
  data: make_params(data),
25
- success: function (png) {
26
- $('#tree_image').attr('src', 'data:image/png;base64, ' + png);
24
+ success: function (raw_data) {
25
+ var png_img = 'data:image/png;base64, ' + raw_data;
26
+ $("#result").html("<img id='tree_image'>");
27
+ $('#tree_image').attr('src', png_img);
27
28
  }
28
29
  });
29
30
  }
data/views/footer.haml CHANGED
@@ -1,3 +1,3 @@
1
1
  .footer
2
2
  %p
3
- &copy; Yoichiro Hasebe 2012
3
+ &copy; Yoichiro Hasebe 2013
data/views/index.haml CHANGED
@@ -11,11 +11,12 @@
11
11
  #alert{:style => "height:20px;"}
12
12
  .span12
13
13
  %textarea.span12{:id => "data", :cols => 100, :style => "font-size: 11pt; height: 4em;line-height: 140%;"}
14
- [S [NP RSyntaxTree][VP [V generates][NP multilingual syntax trees]]]
14
+ [S [NP RSyntaxTree^][VP [V generates][NP multilingual syntax trees]]]
15
15
  .row
16
16
  .span2
17
17
  %h4 Leaf-style
18
18
  %select{:name => "leafstyle", :style => "width:110px;"}
19
+ %option{:value => "auto"}Auto
19
20
  %option{:value => "triangle"}Triangle
20
21
  %option{:value => "bar"}Bar
21
22
  %option{:value => "nothing"}Nothing
@@ -27,6 +28,9 @@
27
28
  %option{:value => "jp-gothic"}JP-Gothic
28
29
  %option{:value => "jp-mincho"}JP-Mincho
29
30
  %option{:value => "cjk"}CJK
31
+ %option{:value => "cjk"}CJK
32
+ %option{:value => "aru"}ARU
33
+ %option{:value => "tnr"}TNR
30
34
  .span2
31
35
  %h4 Font-size
32
36
  %select{:name => "fontsize", :style => "width:60px;"}
@@ -107,8 +111,14 @@
107
111
  %p
108
112
  Every branch or leaf of a tree must belong to a node. To create a node, place a label
109
113
  right next to the opening bracket. Arbitrary number of branches can follow with a
110
- preceding space. When a node has one and only one leaf and the leaf contains more than
111
- one space characters (i.e. when it&#8217;s a phrase).
114
+ preceding space.
115
+
116
+ %p
117
+ There are several modes in which the shape of connectors between a terminal node and its leaf are
118
+ drawn differently (auto, triangle, bar, and nothing). In auto mode, a triangle is used if the leaf
119
+ contains one or more spaces inside (i.e. if it&#8217;s a phrase), but if it contains no spaces (i.e. if
120
+ it is just a word), a straight bar will be drawn instead (unless the leaf contains a "^" symbol at the end
121
+ which makes it a single-word phrase).
112
122
 
113
123
  %p
114
124
  You can put a subscript to any node by putting the _ character between the main label and
data/views/navbar.haml CHANGED
@@ -5,4 +5,4 @@
5
5
  %span.icon-bar
6
6
  %span.icon-bar
7
7
  %span.icon-bar
8
- %a.brand{:href => '/'}RSyntaxTree
8
+ %a.brand{:href => 'https://github.com/yohasebe/rsyntaxtree'}RSyntaxTree 0.6.5
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsyntaxtree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-08 00:00:00.000000000 Z
12
+ date: 2013-05-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rmagick
16
- requirement: &70171855522580 !ruby/object:Gem::Requirement
16
+ requirement: &70313691199800 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70171855522580
24
+ version_requirements: *70313691199800
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: sinatra
27
- requirement: &70171855521840 !ruby/object:Gem::Requirement
27
+ requirement: &70313691199380 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70171855521840
35
+ version_requirements: *70313691199380
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: haml
38
- requirement: &70171855521120 !ruby/object:Gem::Requirement
38
+ requirement: &70313681798040 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70171855521120
46
+ version_requirements: *70313681798040
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: shotgun
49
- requirement: &70171855520620 !ruby/object:Gem::Requirement
49
+ requirement: &70313691228640 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70171855520620
57
+ version_requirements: *70313691228640
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: trollop
60
- requirement: &70171855520160 !ruby/object:Gem::Requirement
60
+ requirement: &70313691228220 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70171855520160
68
+ version_requirements: *70313691228220
69
69
  description: Yet another syntax tree generator made with Ruby and RMagick
70
70
  email:
71
71
  - yohasebe@gmail.com
@@ -132,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
132
  version: '0'
133
133
  requirements: []
134
134
  rubyforge_project: rsyntaxtree
135
- rubygems_version: 1.8.10
135
+ rubygems_version: 1.8.17
136
136
  signing_key:
137
137
  specification_version: 3
138
138
  summary: RSyntaxTree is a graphical syntax tree generator written in Ruby