module DeepCover::Analyser::Subset

A module to create a subset from a criteria called `in_subset?` Including classes can refine it, or specify SUBSET_CLASSES

Public Instance Methods

node_children(node) click to toggle source
# File lib/deep_cover/analyser/subset.rb, line 7
def node_children(node)
  find_children(node)
end

Private Instance Methods

find_children(from, parent = from) click to toggle source
# File lib/deep_cover/analyser/subset.rb, line 13
def find_children(from, parent = from)
  @source.node_children(from).flat_map do |node|
    if in_subset?(node, parent)
      [node]
    else
      find_children(node, parent)
    end
  end
end
in_subset?(node, _parent) click to toggle source
# File lib/deep_cover/analyser/subset.rb, line 23
def in_subset?(node, _parent)
  self.class::SUBSET_CLASSES.any? { |klass| node.is_a?(klass) }
end