Class: TruliaAPI
- Inherits:
-
Object
- Object
- TruliaAPI
- Defined in:
- lib/trulia_api.rb
Instance Method Summary collapse
- #get_cities(state) ⇒ Object
- #get_city_stats(city, state, startdate, enddate) ⇒ Object
- #get_counties(state) ⇒ Object
- #get_neighborhoods(city, state) ⇒ Object
- #get_state_stats(city, state, startdate, enddate) ⇒ Object
- #get_states ⇒ Object
- #get_zip_codes(state) ⇒ Object
-
#initialize(api_key) ⇒ TruliaAPI
constructor
A new instance of TruliaAPI.
Constructor Details
#initialize(api_key) ⇒ TruliaAPI
Returns a new instance of TruliaAPI.
5 6 7 |
# File 'lib/trulia_api.rb', line 5 def initialize(api_key) @api_key = api_key end |
Instance Method Details
#get_cities(state) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/trulia_api.rb', line 22 def get_cities(state) cities = {} cities_in_state_xml = Nokogiri::HTML(open("http://api.trulia.com/webservices.php?library=LocationInfo&function=getCitiesInState&state=#{state}&apikey=#{@api_key}")) cities_in_state_xml.css("city").each do |city| cities[city.css("name").text.downcase] = { state: state, zillow_id: city.css("cityid").text.to_i, longitude: city.css("longitude").text.to_d, latitude: city.css("latitude").text.to_d } end return cities end |
#get_city_stats(city, state, startdate, enddate) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/trulia_api.rb', line 73 def get_city_stats(city, state, startdate, enddate) city_stats = {} city_stats_xml = Nokogiri::HTML(open("http://api.trulia.com/webservices.php?library=TruliaStats&function=getCityStats&city=#{CGI::escape(city)}&state=#{state}&startDate=#{startdate}&endDate=#{enddate}&apikey=#{@api_key}")) city_stats_xml.css("listingstat").each do |listingstat| weekend_date = listingstat.css("weekendingdate").text.downcase listingstat.css("subcategory").each do |subcategory| city_stats = {weekend_date => { subcategory.css("type").text.downcase => { properties: subcategory.css("numberofproperties").text, medianlistingprice: subcategory.css("medianlistingprice").text, averagelistingprice: subcategory.css("averagelistingprice").text }}} end end return "THIS IS NOT READY YET" #return city_stats end |
#get_counties(state) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/trulia_api.rb', line 49 def get_counties(state) counties = {} counties_in_state_xml = Nokogiri::HTML(open("http://api.trulia.com/webservices.php?library=LocationInfo&function=getCountiesInState&state=#{state}&apikey=#{@api_key}")) counties_in_state_xml.css("county").each do |county| counties[county.css("name").text.downcase] = { zillow_id: county.css("countyid").text.to_i, longitude: county.css("longitude").text.to_d, latitude: county.css("latitude").text.to_d } end return counties end |
#get_neighborhoods(city, state) ⇒ Object
62 63 64 65 66 67 68 69 70 71 |
# File 'lib/trulia_api.rb', line 62 def get_neighborhoods(city, state) neighborhoods = {} neighborhoods_in_city_xml = Nokogiri::HTML(open("http://api.trulia.com/webservices.php?library=LocationInfo&function=getNeighborhoodsInCity&city=#{CGI::escape(city)}&state=#{state}&apikey=#{@api_key}")) neighborhoods_in_city_xml.css("neighborhood").each do |neighborhood| neighborhoods[neighborhood.css("name").text.downcase] = { zillow_id: neighborhood.css("id").text.to_i, } end return neighborhoods end |
#get_state_stats(city, state, startdate, enddate) ⇒ Object
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/trulia_api.rb', line 92 def get_state_stats(city, state, startdate, enddate) city_stats = {} city_stats_xml = Nokogiri::HTML(open("http://api.trulia.com/webservices.php?library=TruliaStats&function=getCityStats&city=#{CGI::escape(city)}&state=#{state}&startDate=#{startdate}&endDate=#{enddate}&apikey=#{@api_key}")) city_stats_xml.css("listingstat").each do |listingstat| weekend_date = listingstat.css("weekendingdate").text.downcase listingstat.css("subcategory").each do |subcategory| city_stats = {weekend_date => { subcategory.css("type").text.downcase => { properties: subcategory.css("numberofproperties").text, medianlistingprice: subcategory.css("medianlistingprice").text, averagelistingprice: subcategory.css("averagelistingprice").text }}} end end return puts "THIS IS NOT READY YET" #return city_stats end |
#get_states ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/trulia_api.rb', line 9 def get_states states = {} states_xml = Nokogiri::HTML(open("http://api.trulia.com/webservices.php?library=LocationInfo&function=getStates&apikey=#{@api_key}")) states_xml.css("state").each do |state| states[state.css("name").text.downcase] = { abbreviation: state.css("statecode").text.downcase, longitude: state.css("longitude").text.to_d, latitude: state.css("latitude").text.to_d } end states end |
#get_zip_codes(state) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/trulia_api.rb', line 36 def get_zip_codes(state) zips = {} zip_codes_in_state_xml = Nokogiri::HTML(open("http://api.trulia.com/webservices.php?library=LocationInfo&function=getZipCodesInState&state=#{state}&apikey=#{@api_key}")) zip_codes_in_state_xml.css("zipcode").each do |zip| zips[zip.css("name").text.downcase] = { state: state, longitude: zip.css("longitude").text.to_d, latitude: zip.css("latitude").text.to_d } end return zips end |