Class: RGL::DOT::Edge
Overview
This is an undirected edge representation.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#from ⇒ Object
A node or subgraph reference or instance to be used as the starting point for an edge.
-
#to ⇒ Object
A node or subgraph reference or instance to be used as the ending point for an edge.
Attributes inherited from Element
Instance Method Summary collapse
-
#initialize(params = {}, option_list = EDGE_OPTS) ⇒ Edge
constructor
Creates a new Edge with the params Hash providing settings for all edge options.
-
#to_s(leader = '', indent = ' ') ⇒ Object
Returns a string representation of this edge which is consumable by the graphviz tools
dot
andneato
.
Constructor Details
#initialize(params = {}, option_list = EDGE_OPTS) ⇒ Edge
Creates a new Edge with the params Hash providing settings for all edge options. The option_list parameter restricts those options to the list of valid names it contains.
401 402 403 404 405 |
# File 'lib/rgl/rdot.rb', line 401 def initialize (params = {}, option_list = EDGE_OPTS) super(params, option_list) @from = params['from'] ? params['from'] : nil @to = params['to'] ? params['to'] : nil end |
Instance Attribute Details
#from ⇒ Object
A node or subgraph reference or instance to be used as the starting point for an edge.
393 394 395 |
# File 'lib/rgl/rdot.rb', line 393 def from @from end |
#to ⇒ Object
A node or subgraph reference or instance to be used as the ending point for an edge.
396 397 398 |
# File 'lib/rgl/rdot.rb', line 396 def to @to end |
Instance Method Details
#to_s(leader = '', indent = ' ') ⇒ Object
Returns a string representation of this edge which is consumable by the graphviz tools dot
and neato
. The leader parameter is used to indent every line of the returned string, and the indent parameter is used to additionally indent nested items.
411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 |
# File 'lib/rgl/rdot.rb', line 411 def to_s (leader = '', indent = ' ') = .collect do |name, val| unless val.nil? then leader + indent + "#{quote_ID(name)} = #{quote_ID(val)}" end end.compact.join( ",\n" ) f_s = @from || '' t_s = @to || '' if .empty? then leader + quote_ID(f_s) + ' ' + edge_link + ' ' + quote_ID(t_s) else leader + quote_ID(f_s) + ' ' + edge_link + ' ' + quote_ID(t_s) + " [\n" + + "\n" + leader + "]" end end |