Class: RGL::DOT::Edge

Inherits:
Element show all
Defined in:
lib/rgl/rdot.rb

Overview

This is an undirected edge representation.

Direct Known Subclasses

DirectedEdge

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params = {}, option_list = EDGE_OPTS+EDGE_OPTS_LGCY) ⇒ 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.



481
482
483
484
485
# File 'lib/rgl/rdot.rb', line 481

def initialize(params = {}, option_list = EDGE_OPTS+EDGE_OPTS_LGCY)
  super(params, option_list)
  @from = params['from'] ? params['from'] : nil
  @to   = params['to'] ? params['to'] : nil
end

Instance Attribute Details

#fromObject

A node or subgraph reference or instance to be used as the starting point for an edge.



471
472
473
# File 'lib/rgl/rdot.rb', line 471

def from
  @from
end

#toObject

A node or subgraph reference or instance to be used as the ending point for an edge.



475
476
477
# File 'lib/rgl/rdot.rb', line 475

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.



492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
# File 'lib/rgl/rdot.rb', line 492

def to_s(leader = '', indent = '    ')
  stringified_options = @options.collect do |name, val|
    unless val.nil?
      leader + indent + "#{quote_ID(name)} = #{quote_ID(val)}"
    end
  end.compact.join(",\n")

  f_s = @from || ''
  t_s = @to || ''

  if stringified_options.empty?
    leader + quote_ID(f_s) + ' ' + edge_link + ' ' + quote_ID(t_s)
  else
    leader + quote_ID(f_s) + ' ' + edge_link + ' ' + quote_ID(t_s) + " [\n" +
    stringified_options + "\n" +
    leader + "]"
  end
end