Module: RubyTodo::AIAssistant::ParamExtractor

Included in:
CommandProcessor, RubyTodo::AIAssistantCommand
Defined in:
lib/ruby_todo/ai_assistant/param_extractor.rb

Overview

Helper module for parameter extraction

Instance Method Summary collapse

Instance Method Details

#extract_description_param(params, cli_args) ⇒ Object

Helper to extract description parameter



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/ruby_todo/ai_assistant/param_extractor.rb', line 25

def extract_description_param(params, cli_args)
  case params
  when /--description\s+"([^"]+)"/
    cli_args.push("--description", Regexp.last_match(1))
  # Using a different approach to avoid duplicate branch
  when /--description\s+'([^']+)'/
    desc = params.match(/--description\s+'([^']+)'/)[1]
    cli_args.push("--description", desc)
  # Handle description without quotes
  when /--description\s+([^-\s][^-]*?)(?:\s+--|$)/
    cli_args.push("--description", Regexp.last_match(1).strip)
  end
end

#extract_due_date_param(params, cli_args) ⇒ Object

Helper to extract due date parameter



54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/ruby_todo/ai_assistant/param_extractor.rb', line 54

def extract_due_date_param(params, cli_args)
  case params
  when /--due_date\s+"([^"]+)"/
    cli_args.push("--due_date", Regexp.last_match(1))
  # Using a different approach to avoid duplicate branch
  when /--due_date\s+'([^']+)'/
    due_date = params.match(/--due_date\s+'([^']+)'/)[1]
    cli_args.push("--due_date", due_date)
  when /--due_date\s+([^-\s][^-]*)/
    cli_args.push("--due_date", Regexp.last_match(1).strip)
  end
end

#extract_tags_param(params, cli_args) ⇒ Object

Helper to extract tags parameter



40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/ruby_todo/ai_assistant/param_extractor.rb', line 40

def extract_tags_param(params, cli_args)
  case params
  when /--tags\s+"([^"]+)"/
    cli_args.push("--tags", Regexp.last_match(1))
  # Using a different approach to avoid duplicate branch
  when /--tags\s+'([^']+)'/
    tags = params.match(/--tags\s+'([^']+)'/)[1]
    cli_args.push("--tags", tags)
  when /--tags\s+([^-\s][^-]*)/
    cli_args.push("--tags", Regexp.last_match(1).strip)
  end
end

#extract_task_params(params, cli_args) ⇒ Object

Helper method to extract task parameters



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/ruby_todo/ai_assistant/param_extractor.rb', line 8

def extract_task_params(params, cli_args)
  # Description
  extract_description_param(params, cli_args)

  # Priority
  if params =~ /--priority\s+(\w+)/
    cli_args.push("--priority", Regexp.last_match(1))
  end

  # Tags
  extract_tags_param(params, cli_args)

  # Due date
  extract_due_date_param(params, cli_args)
end