module Xumlidot::Diagram::Dot::Klass
Public Instance Methods
draw()
click to toggle source
# File lib/xumlidot/diagram/dot/klass.rb, line 22 def draw [draw_klass].compact.join('\r\n') end
draw_composition(composee)
click to toggle source
# File lib/xumlidot/diagram/dot/klass.rb, line 31 def draw_composition(composee) "\"#{draw_identifier(composee.definition)}\" -> \"#{draw_identifier(@definition)}\" [label=\"\", arrowhead=\"diamond\", arrowtail=\"diamond\"]" end
draw_inheritence()
click to toggle source
# File lib/xumlidot/diagram/dot/klass.rb, line 35 def draw_inheritence return nil if @definition.superklass.empty? && @definition.inherited_modules.empty? dot = "" if !@definition.superklass.empty? dot += "\"#{draw_identifier(@definition)}\" -> \"#{draw_ancestor(@definition.superklass)}\" [label=\"\", arrowhead=\"empty\", arrowtail=\"onormal\"]\n" end return dot if @definition.inherited_modules.empty? @definition.inherited_modules.each do |m| next if m.empty? dot += "\"#{draw_identifier(@definition)}\" -> \"#{draw_ancestor(m)}\" [label=\"#{m.type.to_s}s\", arrowhead=\"empty\", arrowtail=\"onormal\"]\n" end dot end
draw_klass()
click to toggle source
# File lib/xumlidot/diagram/dot/klass.rb, line 26 def draw_klass label = draw_identifier(@definition) "\"#{draw_identifier(@definition)}\" [shape=Mrecord, label=\"{#{label}|#{draw_methods}}\"]" end
Private Instance Methods
draw_methods()
click to toggle source
# File lib/xumlidot/diagram/dot/klass.rb, line 55 def draw_methods @attributes.each { |a| a.extend(Attribute) } @class_methods.each { |a| a.extend(Method) } @instance_methods.each { |a| a.extend(Method) } km = '' km += @attributes.map(&:to_dot).join('\l') km += '\\l' unless km.end_with?('\\l') km += @class_methods.map(&:to_dot).join('\l') km += '\\l' unless km.end_with?('\\l') km += '|' if instance_methods.size.positive? km += @instance_methods.map(&:to_dot).join('\l') km += '\\l' unless km.end_with?('\\l') km end