Class: DepGraph::GraphImageCreator

Inherits:
Object
  • Object
show all
Defined in:
lib/graph_image_creator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeGraphImageCreator

Returns a new instance of GraphImageCreator.



8
9
10
11
12
# File 'lib/graph_image_creator.rb', line 8

def initialize
  @nodes = []
  @edges = []
  @trans = false
end

Instance Attribute Details

#trans=(value) ⇒ Object (writeonly)

Sets the attribute trans

Parameters:

  • value

    the value to set the attribute trans to.



6
7
8
# File 'lib/graph_image_creator.rb', line 6

def trans=(value)
  @trans = value
end

Instance Method Details

#add_edge(source_node_name, target_node_name) ⇒ Object



31
32
33
34
35
36
# File 'lib/graph_image_creator.rb', line 31

def add_edge(source_node_name, target_node_name)
  fail "Cannot create a dependency to the unregistered node #{target_node_name}" unless @nodes.include?(target_node_name.to_str)
  fail "Cannot create a dependency from the unregistered node #{source_node_name}" unless @nodes.include?(source_node_name.to_str) 
  
  @edges << [source_node_name.to_str, target_node_name.to_str]
end

#add_node(node_name) ⇒ Object



18
19
20
21
# File 'lib/graph_image_creator.rb', line 18

def add_node(node_name)
  fail 'Node name not specified' if node_name.to_str.empty?
  @nodes << node_name.to_str
end

#create_image(image_file_name) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/graph_image_creator.rb', line 47

def create_image(image_file_name)
  begin
    return false if @nodes.size == 0 or @edges.size == 0
    
    set_default_output_generation_unless_is_set
    
    return @output_generation.call(@nodes, @edges, image_file_name)
    
  rescue => e
    puts e.message
    puts e.backtrace
    return false
  end
end

#edge_countObject



27
28
29
# File 'lib/graph_image_creator.rb', line 27

def edge_count
  @edges.size
end

#has_edge?(node1, node2) ⇒ Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/graph_image_creator.rb', line 38

def has_edge?(node1, node2)
  @edges.include? [node1, node2]
end

#has_node?(node_name) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/graph_image_creator.rb', line 23

def has_node?(node_name)
  @nodes.include? node_name
end

#node_countObject



14
15
16
# File 'lib/graph_image_creator.rb', line 14

def node_count
  @nodes.size
end

#output_generation=(output_generation_lambda) ⇒ Object



62
63
64
# File 'lib/graph_image_creator.rb', line 62

def output_generation= output_generation_lambda
  @output_generation = output_generation_lambda
end

#resetObject



42
43
44
45
# File 'lib/graph_image_creator.rb', line 42

def reset
  @nodes.clear
  @edges.clear
end