Class: OmnifocusMcp::Tools::Operations::BatchAddItems::CycleDetector

Inherits:
Object
  • Object
show all
Defined in:
lib/omnifocus_mcp/tools/operations/batch_add_items/cycle_detector.rb

Overview

DFS over a temp_id -> parent_temp_id graph; collects a message for every temp_id participating in any cycle.

Instance Method Summary collapse

Constructor Details

#initialize(temp_index) ⇒ CycleDetector

Returns a new instance of CycleDetector.

Parameters:



13
14
15
16
17
18
19
20
# File 'lib/omnifocus_mcp/tools/operations/batch_add_items/cycle_detector.rb', line 13

def initialize(temp_index)
  @temp_index = temp_index
  @visiting = Set.new
  @visited = Set.new
  @in_cycle = Set.new
  @stack = []
  @messages = {}
end

Instance Method Details

#detectObject



22
23
24
25
# File 'lib/omnifocus_mcp/tools/operations/batch_add_items/cycle_detector.rb', line 22

def detect
  @temp_index.each_key { |tid| visit(tid) }
  @messages
end