class Rubillow::Neighborhood
Interface for the Neighborhood
API.
Read the more about this API at: {www.zillow.com/webtools/neighborhood-data/}
Public Class Methods
Retrieve demographic data for a given region.
Read more at: {www.zillow.com/howto/api/GetDemographics.htm}.
* At least regionid or state/city, city/neighborhood, or zip options are required.
@example
data = Rubillow::Neighborhood.demographics({ :state => 'WA', :city => 'Seattle', :neighborhood => 'Ballard' }) if data.success? puts data.charts['Median Condo Value'] puts data.affordability_data['Zillow Home Value Index'][:neighborhood] data.characteristics.each do |stat| stat end end
@param [Hash] options The options for the API request. @option options [String] :regionid The id of the region (required *) @option options [String] :state The state of the region (required *) @option options [String] :city The city of the region (required *) @option options [String] :neighborhood The neighborhood of the region (required *) @option options [String] :zip The zopcode of the region (required *) @return [Models::Demographics] Region demographics data.
# File lib/rubillow/neighborhood.rb, line 30 def self.demographics(options = {}) options = { :zws_id => Rubillow.configuration.zwsid, :regionid => nil, :state => nil, :city => nil, :neighborhood => nil, :zip => nil, }.merge!(options) if options[:regionid].nil? && options[:zip].nil? && (options[:state].nil? || options[:city].nil?) && (options[:city].nil? || options[:neighborhood].nil?) raise ArgumentError, "The regionid, state and city, city and neighborhood or zip option is required" end Models::Demographics.new(Rubillow::Request.get("GetDemographics", options)) end
Retrieve a chart for the specified region.
Read more at: {www.zillow.com/howto/api/GetRegionChart.htm}.
@example
chart = Rubillow::Neighborhood.chart({ :city => 'Seattle', :state => 'WA', :unit_type => 'percent', :width => 300, :height => 150 }) if chart.success? puts chart.to_html end
@param [Hash] options The options for the API request. @option options [String] :city The city of the region @option options [String] :state The state of the region @option options [String] :neighborhood The county of the region @option options [String] :zip The zipcode of the region @option options [String] :unit-type Show the percent change (percent
), or dollar change (dollar
). (required) @option options [Integer] :width The width of the image; between 200 and 600, inclusive. @option options [Integer] :height The height of the image; between 100 and 300, inclusive. @option options [Integer] :chartDuration The duration of past data to show. Valid values are 1year
, 5years
and 10years
. Defaults to 1year
. @return [Models::RegionChart] Region chart.
# File lib/rubillow/neighborhood.rb, line 109 def self.region_chart(options = {}) options = { :zws_id => Rubillow.configuration.zwsid, :city => nil, :state => nil, :neighborhood => nil, :zip => nil, :unit_type => nil, :width => nil, :height => nil, :chartDuration => nil, }.merge!(options) if options[:unit_type].nil? raise ArgumentError, "The unit_type option is required" end Models::RegionChart.new(Rubillow::Request.get("GetRegionChart", options)) end
Retrieve sub-regions for a region
Read more at: {www.zillow.com/howto/api/GetRegionChildren.htm}.
* At least regionid or state options are required.
@example
data = Rubillow::Neighborhood.region_children({ :state => 'WA', :city => 'Seattle', :childtype => 'neighborhood' }) if data.success? puts data.region.id # "16037" puts data.region.latitude # "47.559364" data.regions.each do |region| puts region.id end end
@param [Hash] options The options for the API request. @option options [String] :regionid The id of the region (required *) @option options [String] :state The state of the region (required *) @option options [String] :county The county of the region @option options [String] :city The city of the region @option options [String] :childType The type of regions to retrieve (available types: state
, county
, city
, zipcode
, and neighborhood
) @return [Models::RegionChildren] Region children list.
# File lib/rubillow/neighborhood.rb, line 71 def self.region_children(options = {}) options = { :zws_id => Rubillow.configuration.zwsid, :regionid => nil, :state => nil, :county => nil, :city => nil, :childtype => nil, }.merge!(options) if options[:regionid].nil? && options[:state].nil? raise ArgumentError, "The regionid or state option is required" end Models::RegionChildren.new(Rubillow::Request.get("GetRegionChildren", options)) end