class Apartments::Apartment
Attributes
apt[RW]
area[RW]
date[RW]
description[RW]
img[RW]
neighborhood[RW]
price[RW]
url[RW]
Public Class Methods
all()
click to toggle source
# File lib/apartments/apartment.rb, line 26 def self.all # @@all.sort_by { |apt| apt.neighborhood.downcase } @@all.sort! { |a, b| a.neighborhood <=> b.neighborhood } end
count()
click to toggle source
# File lib/apartments/apartment.rb, line 31 def self.count @@all.length end
find(id)
click to toggle source
# File lib/apartments/apartment.rb, line 35 def self.find(id) @@all[id - 1] end
new(area=nil, price=nil, neighborhood=nil, url=nil)
click to toggle source
# File lib/apartments/apartment.rb, line 18 def initialize(area=nil, price=nil, neighborhood=nil, url=nil) @area = area @price = price @neighborhood = neighborhood @url = url @@all << self end
new_from_index_page(apt)
click to toggle source
# File lib/apartments/apartment.rb, line 8 def self.new_from_index_page(apt) url = apt.css('a').attribute('href').value unless apt.css('a').attribute('href').nil? area = apt.css('span.housing').text.gsub("\n","").gsub("-","").squeeze.strip unless apt.css('span.housing').nil? price = apt.css('span.result-price')[0].text unless apt.css('span.result-price')[0].nil? neighborhood = apt.css('p.result-info').css('span.result-hood').text.gsub(/[()]/, "").strip unless apt.css('p.result-info').css('span.result-hood').nil? self.new(area, price, neighborhood, url) end
Public Instance Methods
apt_url()
click to toggle source
# File lib/apartments/apartment.rb, line 56 def apt_url @apt_url ||= self.url end
doc()
click to toggle source
# File lib/apartments/apartment.rb, line 52 def doc @doc ||= Apartments::Scraper.scrape_detail(self.url) end
title()
click to toggle source
# File lib/apartments/apartment.rb, line 39 def title @title ||= doc.css('h2.postingtitle span#titletextonly').text.gsub(/[^[:print:]]/i, '') end