Class: Generator::CircularDependencyDetector

Inherits:
Object
  • Object
show all
Defined in:
lib/generator/analyzers/circular_dependency_detector.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(types) ⇒ CircularDependencyDetector

Returns a new instance of CircularDependencyDetector.



10
11
12
# File 'lib/generator/analyzers/circular_dependency_detector.rb', line 10

def initialize(types)
  @types = types
end

Instance Attribute Details

#typesObject (readonly)

Returns the value of attribute types.



8
9
10
# File 'lib/generator/analyzers/circular_dependency_detector.rb', line 8

def types
  @types
end

Instance Method Details

#circular_depsObject



21
22
23
# File 'lib/generator/analyzers/circular_dependency_detector.rb', line 21

def circular_deps
  @circular_deps ||= Set.new
end

#cycle_edgesObject



25
26
27
# File 'lib/generator/analyzers/circular_dependency_detector.rb', line 25

def cycle_edges
  @cycle_edges ||= Set.new
end

#detectObject



14
15
16
17
18
19
# File 'lib/generator/analyzers/circular_dependency_detector.rb', line 14

def detect
  visited = Set.new
  dependency_graph.keys.each do |type_name|
    traverse_for_cycles(type_name, visited:)
  end
end