class NYTimesAPI::RealState
Constants
- API_VERSION
- BASE_URL
- BUILDING_TYPES
- GEO_SUMMARY_LEVELS
- SUCCESS
Attributes
api_key[RW]
requests_count[RW]
Public Class Methods
enable_url_for(resource_type, query_type)
click to toggle source
# File lib/NYTimesAPI/real_state.rb, line 15 def enable_url_for(resource_type, query_type) return "http://api.nytimes.com/svc/real-estate/#{API_VERSION}/#{resource_type}/#{query_type}/50.json?geo-extent-level=borough&" end
new(api_key)
click to toggle source
# File lib/NYTimesAPI/real_state.rb, line 22 def initialize(api_key) @api_key = api_key @requests_count = 0 end
Public Instance Methods
counts(location, options)
click to toggle source
# File lib/NYTimesAPI/real_state.rb, line 27 def counts(location, options) base_url = RealState.enable_url_for("listings", "count") geo_summary_level = options[:geo_summary_level] || GEO_SUMMARY_LEVELS.first url = "#{base_url}geo-extent-value=#{location}&geo-summary-level=#{geo_summary_level}&date-range=#{options[:date]}&bedrooms=#{options[:bedrooms]}&building-type-id=#{options[:type]}&api-key=#{self.api_key}" json = NYTimesAPI::Util.get_json(url) self.requests_count += 1 results = [] if json["status"] == SUCCESS json["results"].each do |res| result_item = { borough: res["borough"], date_format: res["date_format"], date: res["date"], count: res["count"] } results.push result_item end end return results end
percentiles(location, options={})
click to toggle source
# File lib/NYTimesAPI/real_state.rb, line 55 def percentiles(location, options={}) base_url = RealState.enable_url_for("listings", "percentile") url = "#{base_url}geo-extent-value=#{location}&date-range=#{options[:date]}&bedrooms=#{options[:bedrooms]}&building-type-id=#{options[:type]}&api-key=#{self.api_key}" json = NYTimesAPI::Util.get_json(url) self.requests_count += 1 results = [] if json["status"] == SUCCESS json["results"].each do |res| result_item = { borough: res["borough"], date_format: res["date_format"], date: res["date"], percentile: res["percentile"], listing_price: res["listing_price"] } results.push result_item end end return results end
sales_counts(location, options={})
click to toggle source
# File lib/NYTimesAPI/real_state.rb, line 111 def sales_counts(location, options={}) base_url = RealState.enable_url_for("sales", "count") geo_summary_level = options[:geo_summary_level] || GEO_SUMMARY_LEVELS.first url = "#{base_url}geo-extent-value=#{location}&geo-summary-level=#{geo_summary_level}&date-range=#{options[:date]}&bedrooms=#{options[:bedrooms]}&building-type-id=#{options[:type]}&api-key=#{self.api_key}" json = NYTimesAPI::Util.get_json(url) self.requests_count += 1 results = [] if json["status"] == SUCCESS json["results"].each do |res| result_item = { neighborhood: res["neighborhood"], date_format: res["date_format"], date: res["date"], count: res["count"] } results.push result_item end end return results end
sales_percentiles(location, options={})
click to toggle source
# File lib/NYTimesAPI/real_state.rb, line 82 def sales_percentiles(location, options={}) base_url = RealState.enable_url_for("sales", "percentile") geo_summary_level = options[:geo_summary_level] || GEO_SUMMARY_LEVELS.first url = "#{base_url}geo-extent-value=#{location}&geo-summary-level=#{geo_summary_level}&date-range=#{options[:date]}&bedrooms=#{options[:bedrooms]}&building-type-id=#{options[:type]}&api-key=#{self.api_key}" json = NYTimesAPI::Util.get_json(url) self.requests_count += 1 results = [] if json["status"] == SUCCESS json["results"].each do |res| result_item = { zip: res["zip"], date_format: res["date_format"], date: res["date"], percentile: res["percentile"], sale_price: res["sale_price"] } results.push result_item end end return results end