Class: Vizier::SubGraph
Direct Known Subclasses
Graph
Constant Summary
Constants included
from Support
Vizier::Support::LEGAL_CHARS
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Support
#attributes, #attributes=, included, #legal?, #quote, #sanitize
Methods inherited from Base
#[], #[]=
Constructor Details
#initialize(name, attrs = {}) ⇒ SubGraph
Returns a new instance of SubGraph.
174
175
176
177
178
179
180
181
182
|
# File 'lib/support/vizier.rb', line 174
def initialize( name, attrs={} )
self.attributes = attrs
@node = {}
@edge = {}
@name = name
@nodes = []
@links = []
end
|
Instance Attribute Details
Returns the value of attribute links.
171
172
173
|
# File 'lib/support/vizier.rb', line 171
def links
@links
end
|
Returns the value of attribute name.
172
173
174
|
# File 'lib/support/vizier.rb', line 172
def name
@name
end
|
Instance Method Details
#add_link(from, to, a = {}) ⇒ Object
Also known as:
connect, add_edge
202
203
204
205
206
|
# File 'lib/support/vizier.rb', line 202
def add_link(from, to, a={})
returning Link.new( from, to, a) do |l|
@links << l
end
end
|
#add_node(n, a = {}) ⇒ Object
196
197
198
199
200
|
# File 'lib/support/vizier.rb', line 196
def add_node( n, a={} )
returning Node.new(n,a) do |n|
@nodes << n
end
end
|
#build(lines = [], indent = 0) ⇒ Object
210
211
212
213
214
215
216
217
218
|
# File 'lib/support/vizier.rb', line 210
def build(lines = [], indent = 0)
lines.map do |line|
if line.is_a?( Array )
build( line, indent + 1)
else
(" " * (indent * 4) ) + line.to_s
end
end.join("\n")
end
|
226
227
228
|
# File 'lib/support/vizier.rb', line 226
def (str)
(str, 2)
end
|
#edge(attrs = {}) ⇒ Object
192
193
194
|
# File 'lib/support/vizier.rb', line 192
def edge(attrs={})
(@edge ||= {}).merge!(attrs).extend(Attributes)
end
|
#graph(attrs = {}) ⇒ Object
188
189
190
|
# File 'lib/support/vizier.rb', line 188
def graph(attrs={})
self.attributes.merge!(attrs).extend(Attributes)
end
|
#node(attrs = {}) ⇒ Object
184
185
186
|
# File 'lib/support/vizier.rb', line 184
def node(attrs={})
(@node ||= {}).merge!(attrs).extend(Attributes)
end
|
#to_str ⇒ Object
Also known as:
generate!
230
231
232
233
234
235
236
237
238
239
240
241
242
|
# File 'lib/support/vizier.rb', line 230
def to_str
build( ["subgraph #{quote name} {",
[ ["graph #{attributes};",
"node #{node};",
"edge #{edge};"
],
nodes.map(&:to_str),
links.map(&:to_str),
"}"
],
])
end
|
220
221
222
223
224
|
# File 'lib/support/vizier.rb', line 220
def ( str, j = 0 )
l = 40 - (j * 4)
i = ' ' * (j * 4)
"\n#{i}/*#{'*'*(l-2)}\n#{i}** #{ str.ljust((l - (6) - (j*4)),' ') }#{i} **\n#{i}#{'*'*(l-1)}/"
end
|