Class: FetchUtil::CLI
- Inherits:
-
Thor
- Object
- Thor
- FetchUtil::CLI
- Defined in:
- lib/fetch_util/cli.rb
Constant Summary collapse
- DEFAULT_FETCH_FIELDS =
%i[ title byline site_name published_time language name company location description ingredients instructions bedrooms bathrooms area_sqft markdown content_type price rating address social_kind platform handle reply_count community score suspect warnings error_message ].freeze
- FETCH_URL_FIELDS =
%i[url final_url canonical_url].freeze
Instance Method Summary collapse
Instance Method Details
#fetch(*urls) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/fetch_util/cli.rb', line 57 def fetch(*urls) raise ArgumentError, "at least one URL is required" if urls.empty? results = if urls.length == 1 [FetchUtil.fetch(urls.first, **, request_log: request_log)] else FetchUtil.fetch_many(urls, **, request_log: request_log, concurrency: [:concurrency]) end if [:format] == "markdown" puts results.map { |result| front_matter_document(result) }.join("\n\n") else emit(urls.length == 1 && [:format] == "json" ? result_payload(results.first) : results.map { |result| result_payload(result) }) end end |
#regulatory(url) ⇒ Object
95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/fetch_util/cli.rb', line 95 def regulatory(url) raise ArgumentError, "url is required" if url.to_s.strip.empty? request_log.append("regulatory://#{url}?sources=#{[:sources]}") payload = FetchUtil.regulatory( url, cache_path: [:cache_path], sources: [:sources], timeout: [:timeout] ) emit(payload) end |
#search(*terms) ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/fetch_util/cli.rb', line 77 def search(*terms) query = terms.join(" ").strip raise ArgumentError, "query is required" if query.empty? payload = Searcher.new( request_log: request_log, sources: [:source], limit: [:limit], verbose: [:verbose_search], timeout: [:timeout] ).search(query) emit(payload) end |