Class: OmnifocusMcp::Tools::Operations::BatchAddItems
- Inherits:
-
Object
- Object
- OmnifocusMcp::Tools::Operations::BatchAddItems
- Defined in:
- lib/omnifocus_mcp/tools/operations/batch_add_items.rb,
lib/omnifocus_mcp/tools/operations/batch_add_items/planner.rb,
lib/omnifocus_mcp/tools/operations/batch_add_items/batch_item.rb,
lib/omnifocus_mcp/tools/operations/batch_add_items/bulk_executor.rb,
lib/omnifocus_mcp/tools/operations/batch_add_items/param_builder.rb,
lib/omnifocus_mcp/tools/operations/batch_add_items/cycle_detector.rb
Defined Under Namespace
Modules: BulkExecutor, ParamBuilder Classes: BatchItem, CycleDetector, Planner
Class Method Summary collapse
Instance Method Summary collapse
- #call(items) ⇒ Object
-
#initialize(add_task:, add_project:, execute_applescript:, bulk_executor:) ⇒ BatchAddItems
constructor
A new instance of BatchAddItems.
Constructor Details
#initialize(add_task:, add_project:, execute_applescript:, bulk_executor:) ⇒ BatchAddItems
Returns a new instance of BatchAddItems.
26 27 28 29 30 31 |
# File 'lib/omnifocus_mcp/tools/operations/batch_add_items.rb', line 26 def initialize(add_task:, add_project:, execute_applescript:, bulk_executor:) @add_task = add_task @add_project = add_project @execute_applescript = execute_applescript @bulk_executor = bulk_executor end |
Class Method Details
.call(items, add_task: Operations::AddOmniFocusTask.method(:call), add_project: Operations::AddProject.method(:call), execute_applescript: Infrastructure::ScriptRunner.method(:execute_applescript), bulk_executor: BulkExecutor) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/omnifocus_mcp/tools/operations/batch_add_items.rb', line 18 def call(items, add_task: Operations::AddOmniFocusTask.method(:call), add_project: Operations::AddProject.method(:call), execute_applescript: Infrastructure::ScriptRunner.method(:execute_applescript), bulk_executor: BulkExecutor) new(add_task:, add_project:, execute_applescript:, bulk_executor:).call(items) end |
Instance Method Details
#call(items) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/omnifocus_mcp/tools/operations/batch_add_items.rb', line 33 def call(items) batch_items = Array(items).map { |item| coerce_item(item) } .then { |coerced| build_batch_items(coerced) } planner = Planner.new(batch_items).tap(&:prepare!) return OmnifocusMcp::Result.ok(batch_items.map(&:result)) if try_bulk_add!(batch_items:) process_items(ordered: planner.processing_order, planner:) planner.finalize_unresolved! OmnifocusMcp::Result.ok(batch_items.map(&:result)) rescue StandardError => e OmnifocusMcp.logger.warn("[batch_add_items] Error: #{e}") OmnifocusMcp::Result.error(e. || "Unknown error in batch_add_items") end |