Class: Aidp::Harness::UI::Navigation::MenuFormatter
- Inherits:
-
Object
- Object
- Aidp::Harness::UI::Navigation::MenuFormatter
- Defined in:
- lib/aidp/harness/ui/navigation/menu_formatter.rb
Overview
Formats menu display elements
Instance Method Summary collapse
- #format_action_title(action_name) ⇒ Object
- #format_back_option ⇒ Object
- #format_breadcrumb(breadcrumbs) ⇒ Object
- #format_error_message(error) ⇒ Object
- #format_exit_option ⇒ Object
- #format_info_message(message) ⇒ Object
- #format_item_description(item) ⇒ Object
- #format_item_prefix(index) ⇒ Object
- #format_item_status(item) ⇒ Object
- #format_item_title(item) ⇒ Object
- #format_menu_depth(depth) ⇒ Object
- #format_menu_item(item, index) ⇒ Object
- #format_menu_title(title) ⇒ Object
- #format_navigation_prompt ⇒ Object
- #format_separator ⇒ Object
- #format_separator_item ⇒ Object
- #format_shortcut(shortcut) ⇒ Object
- #format_submenu_title(submenu_name) ⇒ Object
- #format_success_message(message) ⇒ Object
- #format_warning_message(message) ⇒ Object
- #format_workflow_title(workflow_name) ⇒ Object
-
#initialize ⇒ MenuFormatter
constructor
A new instance of MenuFormatter.
Constructor Details
#initialize ⇒ MenuFormatter
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_option ⇒ Object
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 () = .join(" > ") @pastel.dim("📍 #{}") end |
#format_error_message(error) ⇒ Object
101 102 103 |
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 101 def (error) "#{@pastel.red("❌ Error:")} #{error}" end |
#format_exit_option ⇒ Object
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 () @pastel.blue("ℹ️ #{}") 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 (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 (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 (title) @pastel.bold(@pastel.blue("📋 #{title}")) end |
#format_navigation_prompt ⇒ Object
77 78 79 |
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 77 def @pastel.bold("Select an option:") end |
#format_separator ⇒ Object
19 20 21 |
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 19 def format_separator "─" * 50 end |
#format_separator_item ⇒ Object
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 () @pastel.bold(@pastel.yellow("📁 #{}")) end |
#format_success_message(message) ⇒ Object
105 106 107 |
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 105 def () @pastel.green("✅ #{}") end |
#format_warning_message(message) ⇒ Object
109 110 111 |
# File 'lib/aidp/harness/ui/navigation/menu_formatter.rb', line 109 def () @pastel.yellow("⚠️ #{}") 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 |