trulia_api 1.3 → 1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trulia_api.rb +90 -25
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1fe899c03f5ede8c974386bcf6a7715e2e4196c1
4
- data.tar.gz: b9a52a21f2a85b43fa4ff8a1a2d60edf214782e4
3
+ metadata.gz: 322eff8e37d4baa87635afbf379f7ef5bdcf73a1
4
+ data.tar.gz: ab8597613972830b7d48f94ebc8607869395d0ed
5
5
  SHA512:
6
- metadata.gz: ed8cc29fa05a8af85848a80a819ecae70ab28c3daa631dfc659a5e9deefaef0e1613cbf2a9c1a0a022a8f5f0118f88df9895e0158559ae22db5323efc1240fcd
7
- data.tar.gz: 2fa66de5a790a8e6671614155de9fef98297f36cb3e3c996c4c6faecc14098204ac572e55ec04f6b3b399aa01c88252e165471ef773d0a6f470b16cf2b4d24fa
6
+ metadata.gz: 1876070612d57e27107812e5bdd63194e54e63f6e6718a17da76e181cb3ec1d9ddbd8635873d1ad6de0037d73cb4a3a3380a5b4710cd8636d9748b30f6daa0bd
7
+ data.tar.gz: ab7aa8162a8199764323d5959ae51eb50139e8153826bcf6391bb4b4c936038e7b543c49faafa262312a9d7b36b0cb4f5510c98532286e7c731fd554107f6482
data/lib/trulia_api.rb CHANGED
@@ -24,7 +24,6 @@ class TruliaAPI
24
24
  cities_in_state_xml = Nokogiri::HTML(open("http://api.trulia.com/webservices.php?library=LocationInfo&function=getCitiesInState&state=#{state}&apikey=#{@api_key}"))
25
25
  cities_in_state_xml.css("city").each do |city|
26
26
  cities[city.css("name").text.downcase] = {
27
- state: state,
28
27
  zillow_id: city.css("cityid").text.to_i,
29
28
  longitude: city.css("longitude").text.to_d,
30
29
  latitude: city.css("latitude").text.to_d
@@ -38,7 +37,6 @@ class TruliaAPI
38
37
  zip_codes_in_state_xml = Nokogiri::HTML(open("http://api.trulia.com/webservices.php?library=LocationInfo&function=getZipCodesInState&state=#{state}&apikey=#{@api_key}"))
39
38
  zip_codes_in_state_xml.css("zipcode").each do |zip|
40
39
  zips[zip.css("name").text.downcase] = {
41
- state: state,
42
40
  longitude: zip.css("longitude").text.to_d,
43
41
  latitude: zip.css("latitude").text.to_d
44
42
  }
@@ -63,7 +61,7 @@ class TruliaAPI
63
61
  neighborhoods = {}
64
62
  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}"))
65
63
  neighborhoods_in_city_xml.css("neighborhood").each do |neighborhood|
66
- neighborhoods[neighborhood.css("name").text.downcase] = {
64
+ neeghborhoods[neighborhood.css("name").text.downcase] = {
67
65
  zillow_id: neighborhood.css("id").text.to_i,
68
66
  }
69
67
  end
@@ -72,40 +70,107 @@ class TruliaAPI
72
70
 
73
71
  def get_city_stats(city, state, startdate, enddate)
74
72
  city_stats = {}
73
+ bedrooms = {}
75
74
  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}"))
76
75
 
77
76
  city_stats_xml.css("listingstat").each do |listingstat|
78
- weekend_date = listingstat.css("weekendingdate").text.downcase
77
+ weekend_date = listingstat.css("weekendingdate").text.downcase
79
78
  listingstat.css("subcategory").each do |subcategory|
80
- city_stats = {weekend_date => {
81
- subcategory.css("type").text.downcase => {
82
- properties: subcategory.css("numberofproperties").text,
83
- medianlistingprice: subcategory.css("medianlistingprice").text,
84
- averagelistingprice: subcategory.css("averagelistingprice").text
85
- }}}
79
+ type = subcategory.css("type").text.downcase
80
+
81
+ bedrooms[type] = {
82
+ properties: subcategory.css("numberofproperties").text,
83
+ medianlistingprice: subcategory.css("medianlistingprice").text,
84
+ averagelistingprice: subcategory.css("averagelistingprice").text
85
+ }
86
+ city_stats[weekend_date] = bedrooms
86
87
  end
87
88
  end
88
- return "THIS IS NOT READY YET"
89
- #return city_stats
89
+ return city_stats
90
90
  end
91
91
 
92
- def get_state_stats(city, state, startdate, enddate)
93
- city_stats = {}
94
- 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}"))
92
+ def get_state_stats(state, startdate, enddate)
93
+ state_stats = {}
94
+ bedrooms = {}
95
+ state_stats_xml = Nokogiri::HTML(open("http://api.trulia.com/webservices.php?library=TruliaStats&function=getStateStats&state=#{state}&startDate=#{startdate}&endDate=#{enddate}&apikey=#{@api_key}"))
95
96
 
96
- city_stats_xml.css("listingstat").each do |listingstat|
97
- weekend_date = listingstat.css("weekendingdate").text.downcase
97
+ state_stats_xml.css("listingstat").each do |listingstat|
98
+ weekend_date = listingstat.css("weekendingdate").text.downcase
99
+ listingstat.css("subcategory").each do |subcategory|
100
+ type = subcategory.css("type").text.downcase
101
+
102
+ bedrooms[type] = {
103
+ properties: subcategory.css("numberofproperties").text,
104
+ medianlistingprice: subcategory.css("medianlistingprice").text,
105
+ averagelistingprice: subcategory.css("averagelistingprice").text
106
+ }
107
+ state_stats[weekend_date] = bedrooms
108
+ end
109
+ end
110
+ return state_stats
111
+ end
112
+
113
+ def get_zip_stats(zip, startdate, enddate)
114
+ zip_stats = {}
115
+ bedrooms = {}
116
+ zip_stats_xml = Nokogiri::HTML(open("http://api.trulia.com/webservices.php?library=TruliaStats&function=getZipCodeStats&zipCode=#{zip}&startDate=#{startdate}&endDate=#{enddate}&apikey=#{@api_key}"))
117
+
118
+ zip_stats_xml.css("listingstat").each do |listingstat|
119
+ weekend_date = listingstat.css("weekendingdate").text.downcase
120
+ listingstat.css("subcategory").each do |subcategory|
121
+ type = subcategory.css("type").text.downcase
122
+
123
+ bedrooms[type] = {
124
+ properties: subcategory.css("numberofproperties").text,
125
+ medianlistingprice: subcategory.css("medianlistingprice").text,
126
+ averagelistingprice: subcategory.css("averagelistingprice").text
127
+ }
128
+ zip_stats[weekend_date] = bedrooms
129
+ end
130
+ end
131
+ return zip_stats
132
+ end
133
+
134
+ def get_neighborhood_stats(nid, startdate, enddate)
135
+ neighborhood_stats = {}
136
+ bedrooms = {}
137
+ neighborhood_stats_xml = Nokogiri::HTML(open("http://api.trulia.com/webservices.php?library=TruliaStats&function=getNeighborhoodStats&neighborhoodId=#{nid}&startDate=#{startdate}&endDate=#{enddate}&apikey=#{@api_key}"))
138
+
139
+ neighborhood_stats_xml.css("listingstat").each do |listingstat|
140
+ weekend_date = listingstat.css("weekendingdate").text.downcase
98
141
  listingstat.css("subcategory").each do |subcategory|
99
- city_stats = {weekend_date => {
100
- subcategory.css("type").text.downcase => {
101
- properties: subcategory.css("numberofproperties").text,
102
- medianlistingprice: subcategory.css("medianlistingprice").text,
103
- averagelistingprice: subcategory.css("averagelistingprice").text
104
- }}}
142
+ type = subcategory.css("type").text.downcase
143
+
144
+ bedrooms[type] = {
145
+ properties: subcategory.css("numberofproperties").text,
146
+ medianlistingprice: subcategory.css("medianlistingprice").text,
147
+ averagelistingprice: subcategory.css("averagelistingprice").text
148
+ }
149
+ neighborhood_stats[weekend_date] = bedrooms
150
+ end
151
+ end
152
+ return neighborhood_stats
153
+ end
154
+
155
+ def get_county_stats(county, state, startdate, enddate)
156
+ county_stats = {}
157
+ bedrooms = {}
158
+ county_stats_xml = Nokogiri::HTML(open("http://api.trulia.com/webservices.php?library=TruliaStats&function=getCountyStats&county=#{CGI::escape(county)}&state=#{state}&startDate=#{startdate}&endDate=#{enddate}&apikey=#{@api_key}"))
159
+
160
+ county_stats_xml.css("listingstat").each do |listingstat|
161
+ weekend_date = listingstat.css("weekendingdate").text.downcase
162
+ listingstat.css("subcategory").each do |subcategory|
163
+ type = subcategory.css("type").text.downcase
164
+
165
+ bedrooms[type] = {
166
+ properties: subcategory.css("numberofproperties").text,
167
+ medianlistingprice: subcategory.css("medianlistingprice").text,
168
+ averagelistingprice: subcategory.css("averagelistingprice").text
169
+ }
170
+ county_stats[weekend_date] = bedrooms
105
171
  end
106
172
  end
107
- return puts "THIS IS NOT READY YET"
108
- #return city_stats
173
+ return county_stats
109
174
  end
110
175
 
111
176
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trulia_api
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.3'
4
+ version: '1.6'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Freeman