module CarReport
Render car search results as an Ibis-style reply card (see CONVENTIONS.md).
Constants
- STYLE_BANNER
Public Instance Methods
Source
# File lib/car_report.rb, line 49 def build_report(listings, parsed) if listings.empty? search_url = CarSearch.build_search_url(**parsed.slice(:make, :model, :min_price, :max_price, :location_state)) return IrcReply.card( tag: "CAR", title: banner_title(parsed), body_lines: [ "No roadworthy listings found in quick search.", "Browse: #{search_url}" ], footer_parts: ["carsales.com.au"], heading_style: STYLE_BANNER ) end IrcReply.card( tag: "CAR", title: banner_title(parsed), body_lines: listings.each_with_index.map { |listing, index| format_listing_line(index + 1, listing) }, footer_parts: footer_parts(listings.length, parsed), heading_style: STYLE_BANNER ) end
Source
# File lib/car_report.rb, line 31 def format_listing_line(index, listing) price = CarSearch.listing_price(listing) label = listing[:title].to_s.sub(/\s+-\s+Carsales\z/i, "").strip label = "#{label} - #{CarSearch.format_price(price)}" if price "#{index}. #{label} (#{listing[:url]})" end