Class: RSGenerator
Class Method Summary collapse
Instance Method Summary collapse
- #draw_pdf ⇒ Object
- #draw_png ⇒ Object
- #draw_svg ⇒ Object
- #draw_tree ⇒ Object
-
#initialize(params = {}) ⇒ RSGenerator
constructor
A new instance of RSGenerator.
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 92 93 94 95 |
# 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" elsif value == "aru" new_params["font"] = FONT_DIR + "/ArialUnicode.ttf" elsif value == "tnr" new_params["font"] = FONT_DIR + "/TimesNewRoman.ttf" end else new_params[key] = value end end @params = { "symmetrize" => true, "color" => true, "autosub" => false, "fontsize" => 18, "format" => "png", "leafstyle" => "auto", "font" => FONT_DIR + "/ipagp.ttf", "filename" => "syntree", "data" => "", } @params.merge! new_params end |
Class Method Details
.check_data(text) ⇒ Object
97 98 99 100 101 |
# File 'lib/rsyntaxtree.rb', line 97 def self.check_data(text) # StringParser.validate_text(text) sp = StringParser.new(text) sp.valid? end |
Instance Method Details
#draw_pdf ⇒ Object
108 109 110 111 |
# File 'lib/rsyntaxtree.rb', line 108 def draw_pdf @params["format"] = "pdf" draw_tree end |
#draw_png ⇒ Object
103 104 105 106 |
# File 'lib/rsyntaxtree.rb', line 103 def draw_png @params["format"] = "png" draw_tree end |
#draw_svg ⇒ Object
123 124 125 126 127 128 129 130 131 132 |
# File 'lib/rsyntaxtree.rb', line 123 def draw_svg @params["format"] = "svg" sp = StringParser.new(@params["data"].gsub('&', '&')) sp.parse sp.auto_subscript if @params["autosub"] elist = sp.get_elementlist graph = SVGGraph.new(elist, @params["symmetrize"], @params["color"], @params["leafstyle"], @params["font"], @params["fontsize"]) graph.svg_data end |
#draw_tree ⇒ Object
113 114 115 116 117 118 119 120 121 |
# File 'lib/rsyntaxtree.rb', line 113 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 |