Class: Aidp::Harness::UI::Navigation::MenuFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/aidp/harness/ui/navigation/menu_formatter.rb

Overview

Formats menu display elements

Instance Method Summary collapse

Constructor Details

#initializeMenuFormatter

Returns a new instance of MenuFormatter.



11
12
13
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 11

def initialize
  @pastel = Pastel.new
end

Instance Method Details

#format_action_title(action_name) ⇒ Object



93
94
95
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 93

def format_action_title(action_name)
  @pastel.bold(@pastel.blue("#{action_name}"))
end

#format_back_optionObject



81
82
83
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 81

def format_back_option
  @pastel.dim("← Back")
end

#format_breadcrumb(breadcrumbs) ⇒ Object



23
24
25
26
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 23

def format_breadcrumb(breadcrumbs)
  breadcrumb_text = breadcrumbs.join(" > ")
  @pastel.dim("📍 #{breadcrumb_text}")
end

#format_error_message(error) ⇒ Object



101
102
103
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 101

def format_error_message(error)
  "#{@pastel.red("❌ Error:")} #{error}"
end

#format_exit_optionObject



85
86
87
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 85

def format_exit_option
  @pastel.red("✗ Exit")
end

#format_info_message(message) ⇒ Object



113
114
115
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 113

def format_info_message(message)
  @pastel.blue("ℹ️ #{message}")
end

#format_item_description(item) ⇒ Object



53
54
55
56
57
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 53

def format_item_description(item)
  return "" unless item.description

  " #{@pastel.dim("- #{item.description}")}"
end

#format_item_prefix(index) ⇒ Object



39
40
41
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 39

def format_item_prefix(index)
  @pastel.bold("#{index}.")
end

#format_item_status(item) ⇒ Object



59
60
61
62
63
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 59

def format_item_status(item)
  return " #{@pastel.red("[DISABLED]")}" if item.disabled?
  return " #{@pastel.yellow("[HIDDEN]")}" if item.hidden?
  ""
end

#format_item_title(item) ⇒ Object



43
44
45
46
47
48
49
50
51
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 43

def format_item_title(item)
  if item.disabled?
    @pastel.dim(item.title)
  elsif item.hidden?
    @pastel.dim(item.title)
  else
    @pastel.bold(item.title)
  end
end

#format_menu_depth(depth) ⇒ Object



73
74
75
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 73

def format_menu_depth(depth)
  @pastel.dim("Level #{depth}")
end

#format_menu_item(item, index) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 28

def format_menu_item(item, index)
  return format_separator_item if item.separator?

  prefix = format_item_prefix(index)
  title = format_item_title(item)
  description = format_item_description(item)
  status = format_item_status(item)

  "#{prefix} #{title}#{description}#{status}"
end

#format_menu_title(title) ⇒ Object



15
16
17
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 15

def format_menu_title(title)
  @pastel.bold(@pastel.blue("📋 #{title}"))
end

#format_navigation_promptObject



77
78
79
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 77

def format_navigation_prompt
  @pastel.bold("Select an option:")
end

#format_separatorObject



19
20
21
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 19

def format_separator
  "" * 50
end

#format_separator_itemObject



65
66
67
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 65

def format_separator_item
  @pastel.dim("────────────────────────────────────────")
end

#format_shortcut(shortcut) ⇒ Object



69
70
71
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 69

def format_shortcut(shortcut)
  @pastel.dim("(#{shortcut})")
end

#format_submenu_title(submenu_name) ⇒ Object



97
98
99
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 97

def format_submenu_title(submenu_name)
  @pastel.bold(@pastel.yellow("📁 #{submenu_name}"))
end

#format_success_message(message) ⇒ Object



105
106
107
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 105

def format_success_message(message)
  @pastel.green("#{message}")
end

#format_warning_message(message) ⇒ Object



109
110
111
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 109

def format_warning_message(message)
  @pastel.yellow("⚠️ #{message}")
end

#format_workflow_title(workflow_name) ⇒ Object



89
90
91
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 89

def format_workflow_title(workflow_name)
  @pastel.bold(@pastel.green("🔄 #{workflow_name} Workflow"))
end