class DependencyGrapher::Filter

Attributes

dependencies[RW]

Public Class Methods

new() click to toggle source
# File lib/dependency_grapher/filter.rb, line 7
def initialize
  @dependencies = nil
end

Public Instance Methods

filter() click to toggle source
# File lib/dependency_grapher/filter.rb, line 11
def filter
  tmp_deps = Set.new
  receiver = {}

  # Crawl ActiveSupport::Dependencies.autoload_paths for known classes
  known_classes = GetKnownClasses.call

  @dependencies.each_with_index do |dep, i|
    kaller = dep.kaller
    receiver = dep.receiver
    # all pass_conds must be true for dependency to be added to calculated_dependencies
    pass_conds = true
    pass_conds &&= kaller.id != receiver.id
    pass_conds &&= (known_classes.include?(kaller.root) || known_classes.include?(receiver.root))
    tmp_deps << dep if pass_conds
  end

  @dependencies = tmp_deps
end
load_dependencies(dependencies) click to toggle source
# File lib/dependency_grapher/filter.rb, line 35
def load_dependencies(dependencies)
  @dependencies = dependencies
end
load_file(filename = "dependencies.yml") click to toggle source
# File lib/dependency_grapher/filter.rb, line 31
def load_file(filename = "dependencies.yml")
  @dependencies = DeserializeDependencies.call(filename)
end