module QldmuseumReport
Constants
- FOOTER
- TAG
Public Instance Methods
Source
# File lib/qldmuseum_report.rb, line 41 def browse_url(query) params = { q: query } "https://collections.qm.qld.gov.au/?#{URI.encode_www_form(params)}" end
Source
# File lib/qldmuseum_report.rb, line 78 def build_fetch_error(query) SearchReport.fetch_error_card( tag: TAG, query: query, fallback_title: "collection search", error_lines: [ "Collection search unavailable right now.", "Try: #{browse_url(query)}" ], footer_parts: FOOTER ) end
Source
# File lib/qldmuseum_report.rb, line 46 def build_report(query:, total:, items:) if items.empty? return SearchReport.empty_report( tag: TAG, query: query, total: 0, empty_lines: [ "No collection matches in Queensland Museum open data.", "Browse: #{browse_url(query)}" ], footer_parts: FOOTER ) end SearchReport.results_report( tag: TAG, query: query, total: total, body_lines: items.each_with_index.map { |item, index| format_item_line(index + 1, item) }, footer_parts: FOOTER ) end
Source
# File lib/qldmuseum_report.rb, line 69 def build_usage SearchReport.usage_card( tag: TAG, title: "collection search", usage_message: QldmuseumSearch.usage_message, footer_parts: FOOTER ) end
Source
# File lib/qldmuseum_report.rb, line 24 def collection_label(key) row = QldmuseumConfig::COLLECTIONS.find { |collection| collection[:key] == key.to_s } row ? row[:label] : key.to_s end
Source
# File lib/qldmuseum_report.rb, line 29 def format_item_line(index, item) meta = [item[:registration], item[:object_type]].map(&:to_s).reject(&:empty?) place = item[:place].to_s.strip collection = collection_label(item[:collection]) SearchReport.list_item_line( index: index, title: QldmuseumSearch.truncate_text(item[:title], QldmuseumConfig::MAX_TITLE_LENGTH), detail_parts: [meta.join(" ยท "), place, collection].reject(&:empty?), url: item[:url] ) end
Source
# File lib/qldmuseum_report.rb, line 20 def heading_title(query, total) SearchReport.heading(query: query, total: total) end