Class: GSA::Searcher

Inherits:
Object
  • Object
show all
Defined in:
lib/gsa/searcher.rb

Class Method Summary collapse

Class Method Details

.clean_query(query) ⇒ Object



23
24
25
# File 'lib/gsa/searcher.rb', line 23

def self.clean_query(query)
  query.tr(' ', '+')
end

.parsed_json(xml) ⇒ Object



27
28
29
# File 'lib/gsa/searcher.rb', line 27

def self.parsed_json(xml)
  Hash.from_xml(xml)
end

.results_found?(search_results) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/gsa/searcher.rb', line 31

def self.results_found?(search_results)
  search_results[GSA::GOOGLE_SEARCH_PROTOCOL].has_key? GSA::RESULTS
end

.search(query, args = {}) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/gsa/searcher.rb', line 3

def self.search(query, args={})
  query           = clean_query(query)
  filter          = args[:filter]     || GSA::DEFAULT_FILTER
  getfields       = args[:getfields]  || GSA::DEFAULT_GETFIELDS
  sort            = args[:sort]       || GSA::DEFAULT_SORT
  num             = args[:num]        || GSA::DEFAULT_NUM  
  output          = args[:output]     || GSA::DEFAULT_OUTPUT
  start           = args[:start]      || GSA::DEFAULT_START
  client          = args[:client]     || GSA::DEFAULT_CLIENT
  site            = args[:collection] || GSA::DEFAULT_COLLECTION
  requiredfields  = args[:filters]    || nil

  search = "#{GSA.base_uri}/search?q=#{query}&filter=#{filter}&site=#{site}&getfields=#{getfields}&sort=#{sort}&num=#{num}&start=#{start}&output=#{output}&client=#{client}"
  search = "#{search}&requiredfields=#{clean_query(requiredfields)}" if requiredfields

  search_results = parsed_json( RestClient.get(search) )

  results_found?(search_results) ? search_results : GSA::NO_RESULTS
end