class Eyemask::Liquid::Uml
Public Class Methods
new(tag_name, markup, tokens)
click to toggle source
Calls superclass method
# File lib/eyemask/liquid/uml.rb, line 10 def initialize(tag_name, markup, tokens) @tag_name = tag_name super end
Public Instance Methods
diagram_type()
click to toggle source
# File lib/eyemask/liquid/uml.rb, line 51 def diagram_type case @tag_name when "uml" "uml" when "ditaa" "ditaa" when "salt" "salt" else "uml" end end
get_data_uri_for_diagram(diagram)
click to toggle source
# File lib/eyemask/liquid/uml.rb, line 19 def get_data_uri_for_diagram(diagram) data = parse_diagram(diagram) "data:image/png;base64,#{Base64.encode64(data)}" end
parse_diagram(diagram)
click to toggle source
# File lib/eyemask/liquid/uml.rb, line 24 def parse_diagram(diagram) output = "" IO.popen(["plantuml", "-pipe"], 'r+') do |f| f.puts("@start#{diagram_type}") case diagram_type when "uml" f.puts("skinparam backgroundColor transparent") f.puts("skinparam shadowing false") f.puts("skinparam dpi 300") end f.puts(diagram) f.puts("@end#{diagram_type}") f.close_write output = f.read end output end
render(context)
click to toggle source
# File lib/eyemask/liquid/uml.rb, line 15 def render(context) "\n\n<figure><img class=\"resolution-#{resolution}\" src=\"#{get_data_uri_for_diagram(super)}\"></figure>\n\n" end
resolution()
click to toggle source
# File lib/eyemask/liquid/uml.rb, line 42 def resolution case diagram_type when "uml" "print" else "normal" end end