Class: RubyCode::Views::Formatter::WebSearchSummary
- Inherits:
-
Object
- Object
- RubyCode::Views::Formatter::WebSearchSummary
- Defined in:
- lib/rubycode/views/formatter/web_search_summary.rb
Overview
Builds web search result summary display
Class Method Summary collapse
- .build(result:) ⇒ Object
- .build_header_lines(pastel, metadata) ⇒ Object
- .build_result_lines(pastel, results) ⇒ Object
- .build_single_result(pastel, item, idx) ⇒ Object
- .snippet?(item) ⇒ Boolean
Class Method Details
.build(result:) ⇒ Object
10 11 12 13 14 15 16 17 18 |
# File 'lib/rubycode/views/formatter/web_search_summary.rb', line 10 def self.build(result:) pastel = Pastel.new = result. || {} lines = build_header_lines(pastel, ) lines.concat(build_result_lines(pastel, [:results] || [])) lines.join("\n") end |
.build_header_lines(pastel, metadata) ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/rubycode/views/formatter/web_search_summary.rb', line 20 def self.build_header_lines(pastel, ) count = [:result_count] || 0 provider = [:provider] || "Search" [ "", " #{pastel.cyan("✓")} Found #{count} result(s) from #{provider}:", "" ] end |
.build_result_lines(pastel, results) ⇒ Object
31 32 33 34 35 |
# File 'lib/rubycode/views/formatter/web_search_summary.rb', line 31 def self.build_result_lines(pastel, results) results.flat_map.with_index do |item, idx| build_single_result(pastel, item, idx) end end |
.build_single_result(pastel, item, idx) ⇒ Object
37 38 39 40 41 42 43 44 45 |
# File 'lib/rubycode/views/formatter/web_search_summary.rb', line 37 def self.build_single_result(pastel, item, idx) lines = [ " #{pastel.bold("#{idx + 1}. #{item[:title]}")}", pastel.cyan(" #{item[:url]}") ] lines << pastel.dim(" #{item[:snippet]}") if snippet?(item) lines << "" lines end |
.snippet?(item) ⇒ Boolean
47 48 49 |
# File 'lib/rubycode/views/formatter/web_search_summary.rb', line 47 def self.snippet?(item) item[:snippet] && !item[:snippet].empty? end |