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.



484
485
486
487
488
# File 'lib/rgl/rdot.rb', line 484

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.



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

def from
  @from
end

#toObject

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



478
479
480
# File 'lib/rgl/rdot.rb', line 478

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.



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

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