Class: OmnifocusMcp::Tools::Generators::AddOmniFocusTask
- Inherits:
-
Object
- Object
- OmnifocusMcp::Tools::Generators::AddOmniFocusTask
- Defined in:
- lib/omnifocus_mcp/tools/generators/add_omnifocus_task.rb
Overview
Defined Under Namespace
Classes: Created
Class Method Summary collapse
-
.call(params) ⇒ Object
Run the generated AppleScript against OmniFocus and parse the JSON result.
- .generate_apple_script(params) ⇒ Object
-
.generate_bulk_apple_script(params_list) ⇒ Object
Combine multiple independent tasks into one osascript invocation.
Class Method Details
.call(params) ⇒ Object
Run the generated AppleScript against OmniFocus and parse the JSON result.
39 40 41 42 43 |
# File 'lib/omnifocus_mcp/tools/generators/add_omnifocus_task.rb', line 39 def call(params) require_relative "../operations/add_omnifocus_task" Operations::AddOmniFocusTask.call(params) end |
.generate_apple_script(params) ⇒ Object
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/omnifocus_mcp/tools/generators/add_omnifocus_task.rb', line 26 def generate_apple_script(params) params = Params::McpBoundary.coerce(Params::AddTaskParams, params) fields = extract_fields(params) date_pre_script, date_vars = build_date_pre_scripts(params) body = document_body(fields:, date_vars:) preamble = date_pre_script.empty? ? "" : "#{date_pre_script}\n" preamble + Infrastructure::AppleScript.tell_document(body) end |
.generate_bulk_apple_script(params_list) ⇒ Object
Combine multiple independent tasks into one osascript invocation.
46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/omnifocus_mcp/tools/generators/add_omnifocus_task.rb', line 46 def generate_bulk_apple_script(params_list) pre_scripts = params_list.flat_map { |params| date_pre_script_for(params) } bodies = params_list.map { |params| bulk_item_body(params) } preamble = pre_scripts.join("\n\n") preamble += "\n\n" unless preamble.empty? preamble += <<~APPLESCRIPT set bulkTaskIds to {} set bulkPlacements to {} APPLESCRIPT inner = (bodies + [bulk_finalize_return]).join("\n\n") preamble + "\n\n#{Infrastructure::AppleScript.tell_document(inner)}" end |