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 |
# 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_pdf ⇒ Object
104 105 106 107 |
# File 'lib/rsyntaxtree.rb', line 104 def draw_pdf @params["format"] = "pdf" draw_tree end |
#draw_png ⇒ Object
99 100 101 102 |
# File 'lib/rsyntaxtree.rb', line 99 def draw_png @params["format"] = "png" draw_tree end |
#draw_svg ⇒ Object
109 110 111 112 |
# File 'lib/rsyntaxtree.rb', line 109 def draw_svg @params["format"] = "svg" draw_svg end |
#draw_tree ⇒ Object
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 |