class Rubillow::Models::UpdatedPropertyDetails

List of updated attributes for a property.

Attributes

edited_facts[RW]

@return [Hash] list of edited facts

@example

edited_facts.each do |key, value|
end
elementary_school[RW]

@return [String] elementary school's name.

home_description[RW]

@return [String] Realtor provided home description

middle_school[RW]

@return [String] middle school's name.

neighborhood[RW]

@return [String] neighborhood.

page_views[RW]

@return [Hash] number of page views (:current_month, :total).

@example

puts page_views[:current_month]
posting[RW]

@return [Hash] posting information

@example

posting.each do |key, value|
end
price[RW]

@return [String] price.

school_district[RW]

@return [String] school district's name.

Protected Instance Methods

parse() click to toggle source

@private

Calls superclass method Rubillow::Models::Base#parse
# File lib/rubillow/models/updated_property_details.rb, line 54
def parse
  super
  
  return if !success?
  
  extract_zpid(@parser)
  extract_links(@parser)
  extract_address(@parser)
  extract_images(@parser)
  
  @page_views = {
    :current_month => @parser.xpath('//pageViewCount/currentMonth').first.text,
    :total => @parser.xpath('//pageViewCount/total').first.text
  }
  @price = @parser.xpath('//price').first.text
  @neighborhood = @parser.xpath('//neighborhood').first.text
  @school_district = @parser.xpath('//schoolDistrict').first.text
  @elementary_school = @parser.xpath('//elementarySchool').first.text
  @middle_school = @parser.xpath('//middleSchool').first.text
  @home_description = @parser.xpath('//homeDescription').first.text
  
  @posting = {}
  @parser.xpath('//posting').children.each do |elm|
    @posting[underscore(elm.name).to_sym] = elm.text
  end
  
  @edited_facts = {}
  @parser.xpath('//editedFacts').children.each do |elm|
    @edited_facts[underscore(elm.name).to_sym] = elm.text
  end
end
underscore(string) click to toggle source

@private

# File lib/rubillow/models/updated_property_details.rb, line 87
def underscore(string)
  word = string.to_s.dup
  word.gsub!(/::/, '/')
  word.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
  word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
  word.gsub!(/\-/, '_')
  word.downcase!
  word
end