class Dependency::GraphGenerator

Public Instance Methods

dependency_spces(spec) click to toggle source
# 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) click to toggle source
# 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) click to toggle source

@param [UmbrellaTargetDescription] umbrella_target the CocoaPods umbrella targets generated by the installer. @param [Hash{<String, Specification>}] module_spec_hash

# 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
  dot_file = "#{target_name}_dependency_graph"
  @graph.write_to_graphic_file('png', dot_file)
end