Class: Unitsdb::Commands::Search

Inherits:
Base
  • Object
show all
Defined in:
lib/unitsdb/commands/search.rb

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Unitsdb::Commands::Base

Instance Method Details

#run(query) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/unitsdb/commands/search.rb', line 6

def run(query)
  type = @options[:type]
  id = @options[:id]
  id_type = @options[:id_type]
  format = @options[:format] || "text"

  database = load_database(@options[:database])

  if id
    lookup_by_id(database, id, id_type, format)
    return
  end

  results = database.search(text: query, type: type)
  if results.empty?
    puts "No results found for '#{query}'"
    return
  end

  print_results(results, query, format)
rescue Unitsdb::Errors::DatabaseError => e
  raise Unitsdb::Errors::DatabaseLoadError,
        "Failed to load database: #{e.message}"
rescue StandardError => e
  raise Unitsdb::Errors::CLIRuntimeError, "Search failed: #{e.message}"
end