Class: Hanuman::Graphvizzer::Graph

Inherits:
Item
  • Object
show all
Defined in:
lib/hanuman/graphvizzer/gv_models.rb

Direct Known Subclasses

Universe

Instance Method Summary collapse

Methods inherited from Item

#attrib, #brace, #close_brace, #depth, #indent, #line, #quote

Instance Method Details

#edge(from, into, from_slot = nil, into_slot = nil) {|obj| ... } ⇒ Object

Yields:

  • (obj)


71
72
73
74
75
76
77
78
79
# File 'lib/hanuman/graphvizzer/gv_models.rb', line 71

def edge(from, into, from_slot=nil, into_slot=nil)
  obj = Edge.new(
    :name => name, :owner => self,
    :from => from, :into => into,
    :from_slot => from_slot, :into_slot => into_slot)
  edges << obj
  yield(obj) if block_given?
  obj
end

#graph(name, attrs = {}) {|obj| ... } ⇒ Object

Yields:

  • (obj)


57
58
59
60
61
62
# File 'lib/hanuman/graphvizzer/gv_models.rb', line 57

def graph(name, attrs={})
  obj = Graph.new(attrs.merge(:name => name, :owner => self))
  items << obj
  yield(obj) if block_given?
  obj
end

#node(name, attrs = {}) {|obj| ... } ⇒ Object

Yields:

  • (obj)


64
65
66
67
68
69
# File 'lib/hanuman/graphvizzer/gv_models.rb', line 64

def node(name, attrs={})
  obj = Node.new(attrs.merge(:name => name, :owner => self))
  items << obj
  yield(obj) if block_given?
  obj
end

#to_sObject



43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/hanuman/graphvizzer/gv_models.rb', line 43

def to_s
  str = []
  str   << brace("subgraph #{quote("cluster_#{name}")}") ## subgraph "cluster_crust" {
  str   << line(attrib("  label", quote(label)))         ##   label="crust";
  items.each do |item|                                   ##
    str << item.to_s                                     ##   "cherry_pie.crust.small_bowl"        [ shape=Mrecord, label="{small\nbowl}" ];
  end                                                    ##   "cherry_pie.crust.flour"             [ shape=Mrecord, label="{flour}" ];
  edges.each do |edge|                                   ##
    str << edge.to_s                                     ##   "cherry_pie.crust.small_bowl"        -> "cherry_pie.crust.add_to_4";
  end                                                    ##   "cherry_pie.crust.flour"             -> "cherry_pie.crust.add_to_4";
  str << close_brace                                     ## }
  str.join("\n")
end