# Module: Plexus::DirectedGraphBuilder

- Includes:
- GraphBuilder

- Included in:
- Digraph, DirectedGraph, DirectedPseudoGraphBuilder

- Defined in:
- lib/plexus/directed_graph.rb,

lib/plexus/directed_graph/distance.rb,

lib/plexus/directed_graph/algorithms.rb

## Overview

Digraph is a directed graph which is a finite set of vertices and a finite set of edges connecting vertices. It cannot contain parallel edges going from the same source vertex to the same target. It also cannot contain loops, i.e. edges that go have the same vertex for source and target.

DirectedPseudoGraph is a class that allows for parallel edges, and DirectedMultiGraph is a class that allows for parallel edges and loops as well.

## Defined Under Namespace

**Modules:** Algorithms, ClassMethods, Distance

## Instance Method Summary collapse

### Methods included from GraphBuilder

#+, #-, #<<, #add_edge, #add_edges, #add_edges!, #add_vertex, #add_vertices, #add_vertices!, #adjacent, #adjacent?, #closed_pth_neighborhood, #complement, #connected?, #degree, #each, #edge?, #empty?, #eql?, #from_array, #in_degree, #include?, #induced_subgraph, #inspect, #max_degree, #max_in_degree, #max_out_degree, #merge, #min_degree, #min_in_degree, #min_out_degree, #neighborhood, #num_edges, #open_pth_neighborhood, #out_degree, #regular?, #remove_edge, #remove_edges, #remove_edges!, #remove_vertex, #remove_vertices, #remove_vertices!, #set_neighborhood, #size, #vertex?

### Methods included from Dot

#dotty, #to_dot, #to_dot_graph, #write_to_graphic_file

### Methods included from Labels

#[], #[]=, #clear_all_labels, #delete_label, #edge_label, #edge_label_delete, #edge_label_set, #vertex_label, #vertex_label_delete, #vertex_label_set

## Instance Method Details

###
#**initialize**(*params) ⇒ `Object`

25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/plexus/directed_graph.rb', line 25 def initialize(*params) # FIXME/TODO: setting args to the hash or {} while getting rid # on the previous parameters prevents from passing another # graph to the initializer, so you cannot do things like: # UndirectedGraph.new(Digraph[1,2, 2,3, 2,4, 4,5, 6,4, 1,6]) # As args must be a hash, if we're to allow such syntax, # we should provide a way to handle the graph as a hash # member. args = (params.pop if params.last.kind_of? Hash) || {} args[:algorithmic_category] = DirectedGraphBuilder::Algorithms super *(params << args) end |