class PetRescue::SearchResultsPage

A page of search results on petrescue.com.au

Public Class Methods

from_url(url) click to toggle source
# File lib/pet_rescue/search_results_page.rb, line 9
def self.from_url(url)
  SearchResultsPage.new(open(url))
end
new(document) click to toggle source
# File lib/pet_rescue/search_results_page.rb, line 13
def initialize(document)
  @document = Nokogiri::HTML(document)
end

Public Instance Methods

has_next_page?() click to toggle source
# File lib/pet_rescue/search_results_page.rb, line 21
def has_next_page?
  !!next_page_href
end
listing_pages() click to toggle source
# File lib/pet_rescue/search_results_page.rb, line 17
def listing_pages
  listing_ids.map { |id| ListingPage.for_listing(id) }
end
next_page() click to toggle source
# File lib/pet_rescue/search_results_page.rb, line 25
def next_page
  url = "http://www.petrescue.com.au#{next_page_href}"
  SearchResultsPage.from_url(url)
end

Private Instance Methods

listing_ids() click to toggle source
# File lib/pet_rescue/search_results_page.rb, line 37
def listing_ids
  @document
    .css(".listing .name a")
    .map { |node| Integer(node[:href].to_s.gsub("/listings/", "")) }
end
next_page_href() click to toggle source
# File lib/pet_rescue/search_results_page.rb, line 32
def next_page_href
  node = @document.at_css(".next a")
  node && node[:href]
end