class Dependy::Operations::Extractor

Attributes

graph[R]

Public Class Methods

new(graph = {}) click to toggle source
# File lib/dependy/operations/extractor.rb, line 6
def initialize(graph = {})
  @graph = graph
end

Public Instance Methods

extract(nodes = [], ignore_nodes = []) click to toggle source
# File lib/dependy/operations/extractor.rb, line 10
def extract(nodes = [], ignore_nodes = [])
  nodes_to_extract(nodes) - ignore_nodes
end

Private Instance Methods

extract_node(node_name, current_result = []) click to toggle source
# File lib/dependy/operations/extractor.rb, line 23
def extract_node(node_name, current_result = [])
  current_result << node_name
  graph.children_for(node_name).each do |child_name|
    extract_node(child_name, current_result) unless current_result.include?(child_name)
  end
  current_result
end
nodes_to_extract(nodes) click to toggle source
# File lib/dependy/operations/extractor.rb, line 17
def nodes_to_extract(nodes)
  nodes.map do |node_name|
    extract_node(node_name)
  end.flatten.uniq
end