Class: FetchUtil::CLI
- Inherits:
-
Thor
- Object
- Thor
- FetchUtil::CLI
- Defined in:
- lib/fetch_util/cli.rb
Constant Summary collapse
- DEFAULT_FETCH_FIELDS =
%i[ url final_url canonical_url title byline site_name published_time markdown content_type suspect warnings error_message ].freeze
Instance Method Summary collapse
Instance Method Details
#fetch(*urls) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/fetch_util/cli.rb', line 38 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" results.each_with_index do |result, index| puts "\n---\n\n" if index > 0 puts result.markdown end else emit(urls.length == 1 && [:format] == "json" ? result_payload(results.first) : results.map { |result| result_payload(result) }) end end |
#regulatory(url) ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/fetch_util/cli.rb', line 80 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
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/fetch_util/cli.rb', line 61 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], concurrency: [[:concurrency], [:source].length].min, verbose: [:verbose_search], ** ).search(query) emit(payload) end |