Class: Cli::Display
- Inherits:
-
Object
- Object
- Cli::Display
- Defined in:
- lib/cli/display.rb
Class Method Summary collapse
- .confirmation(title) ⇒ Object
- .dispaly_diff(original_content, new_content) ⇒ Object
- .error_message(message) ⇒ Object
-
.get_input(input) ⇒ Object
def self.get_input(input) print(input.colorize(mode: :bold)) lines = [] begin while line = STDIN.readline&.chomp lines << line end rescue EOFError end lines.join(ānā) end.
- .info_message(message) ⇒ Object
- .message(role, content) ⇒ Object
- .select(title, options) ⇒ Object
- .spinner(title = "running") ⇒ Object
- .success_message(message) ⇒ Object
- .table(rows, headers) ⇒ Object
Class Method Details
.confirmation(title) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/cli/display.rb', line 32 def self.confirmation(title) while true do puts(title.colorize(mode: :bold)) print("y/N: ".colorize(mode: :bold)) response = STDIN.gets.chomp.downcase if response.empty? puts("Response required".colorize(:red)) elsif response == "y" return true elsif response == "n" return false else puts("Invalid response. Must be one letter, case insenstive".colorize(:red)) end end end |
.dispaly_diff(original_content, new_content) ⇒ Object
93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/cli/display.rb', line 93 def self.dispaly_diff(original_content, new_content) Diffy::Diff.new(original_content, new_content, source: 'strings').each do |line| if line.start_with?("+") puts line.colorize(:green) elsif line.start_with?("-") puts line.colorize(:red) else puts line end end end |
.error_message(message) ⇒ Object
81 82 83 |
# File 'lib/cli/display.rb', line 81 def self.() puts(.colorize(:red)) end |
.get_input(input) ⇒ Object
def self.get_input(input)
print(input.colorize(mode: :bold))
lines = []
begin
while line = STDIN.readline&.chomp
lines << line
end
rescue EOFError
end
lines.join("\n")
end
71 72 73 74 75 |
# File 'lib/cli/display.rb', line 71 def self.get_input(input) prompt = TTY::Prompt.new lines = prompt.multiline(input.colorize(mode: :bold)) lines.join("\n") end |
.info_message(message) ⇒ Object
85 86 87 |
# File 'lib/cli/display.rb', line 85 def self.() puts(.colorize(color: :light_black)) end |
.message(role, content) ⇒ Object
9 10 11 12 13 14 15 |
# File 'lib/cli/display.rb', line 9 def self.(role, content) if role == "user" puts("you".colorize(background: :green) + ": " + content) else puts("assistant".colorize(background: :yellow) + ": " + content) end end |
.select(title, options) ⇒ Object
27 28 29 30 |
# File 'lib/cli/display.rb', line 27 def self.select(title, ) prompt = TTY::Prompt.new prompt.select(title.colorize(mode: :bold), , per_page: 100, columnize: 2) end |
.spinner(title = "running") ⇒ Object
89 90 91 |
# File 'lib/cli/display.rb', line 89 def self.spinner(title="running") TTY::Spinner.new("[:spinner] #{title}", format: :spin_2) end |
.success_message(message) ⇒ Object
77 78 79 |
# File 'lib/cli/display.rb', line 77 def self.() puts(.colorize(:green)) end |
.table(rows, headers) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/cli/display.rb', line 17 def self.table(rows, headers) rows = rows.map(&:values) table = Terminal::Table.new( headings: headers, rows: rows ) puts table end |