code: def traverse_dependecies(traversed_nodes, starting_node, current_node, edges, dependencies, escalation)
        dependencies.each do |node_edge|
          node = node_edge.first
          traversed_nodes << node
          if traversed_nodes.include?(starting_node)
            if escalation == :exception
              raise "Cycle from #{current_node} to #{node}, starting from #{starting_node} passing #{traversed_nodes}"
            else
              return true
            end
          end
          return true if traverse_dependecies(traversed_nodes, starting_node, node, edges, node_edges(edges, node), escalation)
        end
  
        false
      end
docs: Recursive method for traversing dependencies and finding a cycle
  
   @param traversed_nodes [Array<InventoryRefresh::InventoryCollection> Already traversed nodes
   @param starting_node [InventoryRefresh::InventoryCollection] Node we've started the traversal on
   @param current_node [InventoryRefresh::InventoryCollection] Node we are currently on
   @param edges [Array<Array>] All graph edges
   @param dependencies [Array<InventoryRefresh::InventoryCollection> Dependencies of the current node
   @param escalation [Symbol] If :exception, this method throws exception when it finds a cycle
   @return [Boolean, Exception] Based on escalation returns true or raises exception if there is a cycle