Class: RSGenerator

Inherits:
Object
  • Object
show all
Includes:
Helpers
Defined in:
lib/rsyntaxtree.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ RSGenerator

Returns a new instance of RSGenerator.



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/rsyntaxtree.rb', line 48

def initialize(params = {})
 new_params = {}
 params.each do |key, value|
   case key
   when "data"
     data = URI.unescape(value)
     data  = data.gsub('-AMP-', '&').gsub('-PRIME-', "'").gsub('-SCOLON-', ';')
     new_params[key] = data
   when "symmetrize", "color", "autosub"
     new_params[key] = value == "on"? true : false
   when "fontsize"
     new_params[key] = value.to_i
   when "fontstyle"
     if value == "sans-serif"
       new_params["font"] = FONT_DIR + "/DroidSans.ttf"
     elsif value == "serif"
       new_params["font"] = FONT_DIR + "/DroidSerif-Regular.ttf"
     elsif value == "jp-gothic"
       new_params["font"] = FONT_DIR + "/ipagp.ttf"
     elsif value == "jp-mincho"
       new_params["font"] = FONT_DIR + "/ipamp.ttf"
     elsif value == "cjk"
       new_params["font"] = FONT_DIR + "/wqy-zenhei.ttf"
     end
   else
     new_params[key] = value
   end
 end
 
 
 @params = {
   "symmetrize" => true,
   "color"      => true,
   "autosub"    => false,
   "fontsize"   => 18,
   "format"     => "png",
   "leafstyle"   => "triangle",
   "font"        => FONT_DIR + "/ipagp.ttf",
   "filename"   => "syntree",
   "data"       => "",
 }
 
 @params.merge! new_params
end

Class Method Details

.check_data(text) ⇒ Object



93
94
95
96
97
# File 'lib/rsyntaxtree.rb', line 93

def self.check_data(text)
   # StringParser.validate_text(text)     
   sp = StringParser.new(text)
   sp.valid?
end

Instance Method Details

#draw_pdfObject



104
105
106
107
# File 'lib/rsyntaxtree.rb', line 104

def draw_pdf
  @params["format"] = "pdf"
  draw_tree
end

#draw_pngObject



99
100
101
102
# File 'lib/rsyntaxtree.rb', line 99

def draw_png
  @params["format"] = "png"
  draw_tree
end

#draw_svgObject



109
110
111
112
# File 'lib/rsyntaxtree.rb', line 109

def draw_svg
  @params["format"] = "svg"
  draw_svg
end

#draw_treeObject



114
115
116
117
118
119
120
121
122
# File 'lib/rsyntaxtree.rb', line 114

def draw_tree
  sp = StringParser.new(@params["data"])
  sp.parse
  sp.auto_subscript if @params["autosub"]
  elist = sp.get_elementlist
  graph = TreeGraph.new(elist, 
    @params["symmetrize"], @params["color"], @params["leafstyle"], @params["font"], @params["fontsize"], @params["format"])
  graph.to_blob(@params["format"])
end