Class: Slk::Formatters::SearchFormatter
- Inherits:
-
Object
- Object
- Slk::Formatters::SearchFormatter
- Defined in:
- lib/slk/formatters/search_formatter.rb
Overview
Formats search results for terminal display
Instance Method Summary collapse
-
#display_all(results, workspace, options: {}) ⇒ Object
Display a list of search results.
-
#display_result(result, workspace, options = {}) ⇒ Object
Display a single search result.
-
#initialize(output:, mention_replacer:, text_processor:) ⇒ SearchFormatter
constructor
A new instance of SearchFormatter.
Constructor Details
#initialize(output:, mention_replacer:, text_processor:) ⇒ SearchFormatter
Returns a new instance of SearchFormatter.
7 8 9 10 11 |
# File 'lib/slk/formatters/search_formatter.rb', line 7 def initialize(output:, mention_replacer:, text_processor:) @output = output @mentions = mention_replacer @text_processor = text_processor end |
Instance Method Details
#display_all(results, workspace, options: {}) ⇒ Object
Display a list of search results
14 15 16 17 18 19 20 21 |
# File 'lib/slk/formatters/search_formatter.rb', line 14 def display_all(results, workspace, options: {}) return @output.puts 'No results found.' if results.empty? results.each_with_index do |result, index| display_result(result, workspace, ) @output.puts if index < results.length - 1 end end |
#display_result(result, workspace, options = {}) ⇒ Object
Display a single search result
24 25 26 27 28 29 30 31 32 |
# File 'lib/slk/formatters/search_formatter.rb', line 24 def display_result(result, workspace, = {}) = @output.blue("[#{format_time(result.)}]") channel = @output.cyan(resolve_channel(result, workspace)) user = @output.bold("#{resolve_user(result, workspace)}:") text = prepare_text(result.text, workspace, ) @output.puts "#{} #{channel} #{user} #{text}" display_files(result.files) if result.files&.any? end |