Class: Dependency::GraphGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/cocoapods-dependency-graph/generator/graph_generator.rb

Instance Method Summary collapse

Instance Method Details

#dependency_spces(spec) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/cocoapods-dependency-graph/generator/graph_generator.rb', line 6

def dependency_spces(spec) 
  dependencies = []
  spec.dependencies.each { | dependency |
    d_spec = @module_spec_hash[dependency.name]
    next unless d_spec.source
    dependencies << d_spec 
  }
  dependencies
end

#dfs_graph(parent, specs) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/cocoapods-dependency-graph/generator/graph_generator.rb', line 16

def dfs_graph(parent, specs) 
  specs.each { | spec |
    next unless spec.source
    @graph.add_edge(parent, spec)
    dfs_graph(spec, dependency_spces(spec))
  }
end

#generate(umbrella_target, module_spec_hash) ⇒ Object

Parameters:

  • umbrella_target (UmbrellaTargetDescription)

    the CocoaPods umbrella targets generated by the installer.

  • module_spec_hash (Hash{<String, Specification>})


27
28
29
30
31
32
33
34
35
36
37
# File 'lib/cocoapods-dependency-graph/generator/graph_generator.rb', line 27

def generate(umbrella_target, module_spec_hash)
  @graph = RGL::DirectedAdjacencyGraph.new
  @module_spec_hash = module_spec_hash
   
  target_name = umbrella_target.cocoapods_target_label
  root_node = {:target => target_name} 
  dfs_graph(root_node, umbrella_target.specs)
  
  @graph.print_dotted_on
  @graph.write_to_graphic_file('jpg')
end