Class: Sxn::UI::Output

Inherits:
Object
  • Object
show all
Defined in:
lib/sxn/ui/output.rb

Overview

Formatted output with colors and status indicators

Instance Method Summary collapse

Constructor Details

#initializeOutput

Returns a new instance of Output.



9
10
11
# File 'lib/sxn/ui/output.rb', line 9

def initialize
  @pastel = Pastel.new
end

Instance Method Details

#command_example(command, description = nil) ⇒ Object



90
91
92
93
94
# File 'lib/sxn/ui/output.rb', line 90

def command_example(command, description = nil)
  puts "  #{@pastel.dim(description)}" if description
  puts "  #{@pastel.cyan("$ #{command}")}"
  puts ""
end

#debug(message) ⇒ Object



29
30
31
# File 'lib/sxn/ui/output.rb', line 29

def debug(message)
  puts @pastel.dim("🔍 #{message}") if debug_mode?
end

#empty_state(message) ⇒ Object



60
61
62
# File 'lib/sxn/ui/output.rb', line 60

def empty_state(message)
  puts @pastel.dim("  #{message}")
end

#error(message) ⇒ Object



17
18
19
# File 'lib/sxn/ui/output.rb', line 17

def error(message)
  puts @pastel.red("❌ #{message}")
end

#info(message) ⇒ Object



25
26
27
# File 'lib/sxn/ui/output.rb', line 25

def info(message)
  puts @pastel.blue("â„šī¸  #{message}")
end

#key_value(key, value, indent: 0) ⇒ Object



64
65
66
67
# File 'lib/sxn/ui/output.rb', line 64

def key_value(key, value, indent: 0)
  spacing = " " * indent
  puts "#{spacing}#{@pastel.bold(key)}: #{value}"
end

#list_item(item, description = nil) ⇒ Object



52
53
54
55
56
57
58
# File 'lib/sxn/ui/output.rb', line 52

def list_item(item, description = nil)
  if description
    puts "  â€ĸ #{@pastel.bold(item)} - #{description}"
  else
    puts "  â€ĸ #{item}"
  end
end

#newlineObject



81
82
83
# File 'lib/sxn/ui/output.rb', line 81

def newline
  puts ""
end

#progress_doneObject



73
74
75
# File 'lib/sxn/ui/output.rb', line 73

def progress_done
  puts @pastel.green("✅")
end

#progress_failedObject



77
78
79
# File 'lib/sxn/ui/output.rb', line 77

def progress_failed
  puts @pastel.red("❌")
end

#progress_start(message) ⇒ Object



69
70
71
# File 'lib/sxn/ui/output.rb', line 69

def progress_start(message)
  print "#{message}... "
end

#recovery_suggestion(message) ⇒ Object



85
86
87
88
# File 'lib/sxn/ui/output.rb', line 85

def recovery_suggestion(message)
  puts ""
  puts @pastel.yellow("💡 Suggestion: #{message}")
end

#section(title) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/sxn/ui/output.rb', line 38

def section(title)
  puts ""
  puts @pastel.bold(@pastel.cyan("═" * 60))
  puts @pastel.bold(@pastel.cyan("  #{title}"))
  puts @pastel.bold(@pastel.cyan("═" * 60))
  puts ""
end

#status(label, message, color = :blue) ⇒ Object



33
34
35
36
# File 'lib/sxn/ui/output.rb', line 33

def status(label, message, color = :blue)
  colored_label = @pastel.public_send(color, "[#{label.upcase}]")
  puts "#{colored_label} #{message}"
end

#subsection(title) ⇒ Object



46
47
48
49
50
# File 'lib/sxn/ui/output.rb', line 46

def subsection(title)
  puts ""
  puts @pastel.bold(title.to_s)
  puts @pastel.dim("─" * title.length)
end

#success(message) ⇒ Object



13
14
15
# File 'lib/sxn/ui/output.rb', line 13

def success(message)
  puts @pastel.green("✅ #{message}")
end

#warning(message) ⇒ Object



21
22
23
# File 'lib/sxn/ui/output.rb', line 21

def warning(message)
  puts @pastel.yellow("âš ī¸  #{message}")
end