Class: Sonar::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/sonar/cli/cli.rb

Instance Method Summary collapse

Constructor Details

#initializeCLI

Returns a new instance of CLI.



11
12
13
14
15
# File 'lib/sonar/cli/cli.rb', line 11

def initialize(*)
  @config = Sonar::RCFile.instance.load_file
  @client = Sonar::Client.new(email: @config["email"], access_token: @config["access_token"], api_url: @config["api_url"])
  super
end

Instance Method Details

#configObject



58
59
60
61
# File 'lib/sonar/cli/cli.rb', line 58

def config
  # TODO: add a way to set config
  puts "Your config file is located at #{RCFile.instance.path}"
end

#profileObject



18
19
20
# File 'lib/sonar/cli/cli.rb', line 18

def profile
  ap @config
end

#search(type, term) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/sonar/cli/cli.rb', line 31

def search(type, term)
  @query = {}
  @query[type.to_sym] = term
  @query[:limit] = options['record_limit']
  @query[:exact] = options['exact']
  resp = @client.search(@query)

  errors = 0
  if resp.is_a?(Sonar::Request::RequestIterator)
    resp.each do |data|
      errors += 1 if data.key?('errors') || data.key?('error')
      print_json(cleanup_data(data), options['format'])
    end
  else
    errors += 1 if resp.key?('errors') || resp.key?('error')
    print_json(cleanup_data(resp), options['format'])
  end

  raise Search::SearchError.new("Encountered #{errors} errors while searching") if errors > 0
end

#typesObject



53
54
55
# File 'lib/sonar/cli/cli.rb', line 53

def types
  ap Search::QUERY_TYPES_MAP
end

#usageObject



23
24
25
# File 'lib/sonar/cli/cli.rb', line 23

def usage
  ap @client.usage
end