Class: Craigler::Search

Inherits:
Object
  • Object
show all
Includes:
ERB::Util
Defined in:
lib/craigler/search.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(search_term, options = {}) ⇒ Search

Returns a new instance of Search.

Raises:



9
10
11
12
13
14
15
# File 'lib/craigler/search.rb', line 9

def initialize(search_term, options = {})
  raise InvalidSearchTerm if search_term.nil? || search_term == ''
  
  @search_term = search_term
  @results     = nil
  _parse_options(options)
end

Instance Attribute Details

#categoriesObject (readonly)

Returns the value of attribute categories.



7
8
9
# File 'lib/craigler/search.rb', line 7

def categories
  @categories
end

#locationsObject (readonly)

Returns the value of attribute locations.



7
8
9
# File 'lib/craigler/search.rb', line 7

def locations
  @locations
end

#search_termObject (readonly)

Returns the value of attribute search_term.



7
8
9
# File 'lib/craigler/search.rb', line 7

def search_term
  @search_term
end

Instance Method Details

#results(refresh = false) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/craigler/search.rb', line 17

def results(refresh = false)
  return @results unless @results.nil? || refresh
  
  @results = []
  _for_each_locations_search_url() do |location, url|
    (0..19).each do |page|
      items = _extract_items_from_url(location, "#{url}&s=#{page*25}")
      @results.push(*items)
      break unless items.size == 25
    end
  end
  
  results
end