Sha256: 5216d0fbb419e8bf743a2acc56116c732693b80c39d8d1f33cc1f35e344ac3a2

Contents?: true

Size: 1.39 KB

Versions: 13

Compression:

Stored size: 1.39 KB

Contents

class MLS::Region < MLS::Resource

  property :id,             Fixnum, :serialize => :if_present
  property :name,           String, :serialize => false
  property :proper_name,    String, :serialize => :if_present
  property :common_name,    String, :serialize => :if_present
  property :code,           String, :serialize => :if_present
  property :type,           String, :serialize => :if_present
  property :source,         String, :serialize => :if_present
  property :minimum_zoom,   Fixnum, :serialize => :if_present
  property :maximum_zoom,   Fixnum, :serialize => :if_present
  property :slug,           String, :serialize => false
  property :geometry,       Hash,   :serialize => false
  property :envelope,       Hash,   :serialize => false
  property :children,       Hash,   :serialize => false

  # Counter caches
  property :listings_count, Fixnum, :serialize => :false

  class << self

    def find(id)
      response = MLS.get("/regions/#{id}")
      MLS::Region::Parser.parse(response.body)
    end

  end

  def name
    common_name || proper_name
  end

  def bounds
    return nil unless envelope
    n, e, s, w = nil, nil, nil, nil
    envelope[:coordinates][0].each do |c|
      lon, lat = *c
      n = lat if !n || lat > n
      e = lon if !e || lon > e
      s = lat if !s || lat < s
      w = lon if !w || lon < w
    end
    [n, e, s, w]
  end

end


class MLS::Region::Parser < MLS::Parser

end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
mls-0.11.1 lib/mls/models/region.rb
mls-0.11.0 lib/mls/models/region.rb
mls-0.9.9 lib/mls/models/region.rb
mls-0.9.8 lib/mls/models/region.rb
mls-0.9.6 lib/mls/models/region.rb
mls-0.9.5 lib/mls/models/region.rb
mls-0.9.4 lib/mls/models/region.rb
mls-0.9.3 lib/mls/models/region.rb
mls-0.9.2 lib/mls/models/region.rb
mls-0.9.1 lib/mls/models/region.rb
mls-0.9.0 lib/mls/models/region.rb
mls-0.8.2 lib/mls/models/region.rb
mls-0.8.1 lib/mls/models/region.rb