module AccomReport
Render accommodation search results as an Ibis-style reply card.
Constants
- STYLE_BANNER
Public Instance Methods
Source
# File lib/accom_report.rb, line 39 def build_report(items, parsed, search_url:) if items.empty? return IrcReply.card( tag: "ACCOM", title: banner_title(parsed), body_lines: [ "No accommodation listings found in quick search.", "Browse: #{search_url}" ], footer_parts: [TextUtil.title_words(parsed[:location]), "try nearby towns"], heading_style: STYLE_BANNER ) end IrcReply.card( tag: "ACCOM", title: banner_title(parsed), body_lines: items.each_with_index.map { |item, index| format_listing_line(index + 1, item) }, footer_parts: footer_parts(items.length, parsed), heading_style: STYLE_BANNER ) end
Source
# File lib/accom_report.rb, line 22 def format_listing_line(index, item) parts = ["#{index}. #{item[:name]} โ #{item[:price_label]}"] parts << item[:location].to_s unless item[:location].to_s.strip.empty? description = TextUtil.truncate(item[:description].to_s, 120) parts << description unless description.empty? parts << item[:availability].to_s unless item[:availability].to_s.strip.empty? parts.join(" ยท ") end