Module: Sumologic::Interactive::FzfViewer::HeaderBuilder
- Defined in:
- lib/sumologic/interactive/fzf_viewer/header_builder.rb
Class Method Summary collapse
- .build_column_headers ⇒ Object
- .build_header_text(results, messages) ⇒ Object
- .build_info_line(results, messages) ⇒ Object
- .build_keybindings_help ⇒ Object
- .build_search_tips ⇒ Object
Class Method Details
.build_column_headers ⇒ Object
18 19 20 21 22 |
# File 'lib/sumologic/interactive/fzf_viewer/header_builder.rb', line 18 def build_column_headers "#{Formatter.pad('TIME', Config::TIME_WIDTH)} " \ "#{Formatter.pad('LEVEL', Config::LEVEL_WIDTH)} " \ "#{Formatter.pad('SOURCE', Config::SOURCE_WIDTH)} MESSAGE" end |
.build_header_text(results, messages) ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/sumologic/interactive/fzf_viewer/header_builder.rb', line 9 def build_header_text(results, ) [ build_column_headers, build_info_line(results, ), build_search_tips, build_keybindings_help ].join("\n") end |
.build_info_line(results, messages) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/sumologic/interactive/fzf_viewer/header_builder.rb', line 24 def build_info_line(results, ) query = results['query'] || 'N/A' count = .size sources = .map { |m| m['map']['_source'] }.compact.uniq.size "#{count} msgs | #{sources} sources | Query: #{Formatter.truncate(query, 40)}" end |
.build_keybindings_help ⇒ Object
36 37 38 |
# File 'lib/sumologic/interactive/fzf_viewer/header_builder.rb', line 36 def build_keybindings_help 'Enter=select Tab=view Ctrl-T=toggle-search Ctrl-S=save Ctrl-Y=copy Ctrl-E=export Ctrl-Q=quit' end |
.build_search_tips ⇒ Object
32 33 34 |
# File 'lib/sumologic/interactive/fzf_viewer/header_builder.rb', line 32 def build_search_tips '💡 Simple text search (case-insensitive) - searches all JSON fields and log content' end |