Class: MLS::Address
Defined Under Namespace
Classes: Parser
Instance Attribute Summary collapse
-
#listing_types ⇒ Object
Returns the value of attribute listing_types.
-
#listings ⇒ Object
Returns the value of attribute listings.
-
#photos ⇒ Object
Returns the value of attribute photos.
-
#videos ⇒ Object
Returns the value of attribute videos.
Attributes inherited from Resource
Class Method Summary collapse
-
.all(options = {}) ⇒ Object
currently supported options are :include, :where, :limit, :offset.
- .amenities ⇒ Object
- .find(id) ⇒ Object
- .query(q) ⇒ Object
Instance Method Summary collapse
-
#avatar(size = '100x200#', protocol = 'http') ⇒ Object
should include an optional use address or no_image image.
- #find_listings(space_available, floor, unit) ⇒ Object
- #save ⇒ Object
- #to_hash ⇒ Object
- #to_param ⇒ Object
- #url ⇒ Object
Methods inherited from Resource
#==, #create!, inherited, #initialize, #new_record?, #persisted?, #properties, #properties_excluded_from_comparison, #properties_for_comparison, #save!, #set_default_values, #to_key, #update!, #update_attributes
Constructor Details
This class inherits a constructor from MLS::Resource
Instance Attribute Details
#listing_types ⇒ Object
Returns the value of attribute listing_types.
43 44 45 |
# File 'lib/mls/models/address.rb', line 43 def listing_types @listing_types end |
#listings ⇒ Object
Returns the value of attribute listings.
43 44 45 |
# File 'lib/mls/models/address.rb', line 43 def listings @listings end |
#photos ⇒ Object
Returns the value of attribute photos.
43 44 45 |
# File 'lib/mls/models/address.rb', line 43 def photos @photos end |
#videos ⇒ Object
Returns the value of attribute videos.
43 44 45 |
# File 'lib/mls/models/address.rb', line 43 def videos @videos end |
Class Method Details
.all(options = {}) ⇒ Object
currently supported options are :include, :where, :limit, :offset
120 121 122 123 |
# File 'lib/mls/models/address.rb', line 120 def all(={}) response = MLS.get('/addresses', ) MLS::Address::Parser.parse_collection(response.body) end |
.amenities ⇒ Object
125 126 127 |
# File 'lib/mls/models/address.rb', line 125 def amenities @amenities ||= Yajl::Parser.new(:symbolize_keys => true).parse(MLS.get('/addresses/amenities').body) end |
Instance Method Details
#avatar(size = '100x200#', protocol = 'http') ⇒ Object
should include an optional use address or no_image image
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/mls/models/address.rb', line 46 def avatar(size='100x200#', protocol='http') params = { :size => size, :format => 'png', :sensor => false, :location => [formatted_address], :fov => 120 } if avatar_digest "#{protocol}://#{MLS.image_host}/#{avatar_digest}.jpg?s=#{URI.escape(size)}" else params[:size] = params[:size].match(/\d+x\d+/)[0] "#{protocol}://maps.googleapis.com/maps/api/streetview?" + params.map{|k,v| k.to_s + '=' + URI.escape(v.to_s) }.join('&') end end |
#find_listings(space_available, floor, unit) ⇒ Object
101 102 103 104 105 |
# File 'lib/mls/models/address.rb', line 101 def find_listings(space_available, floor, unit) response = MLS.get("/addresses/#{id}/find_listings", :floor => floor, :unit => unit, :space_available => space_available) MLS::Listing::Parser.parse_collection(response.body) end |
#save ⇒ Object
63 64 65 66 67 68 69 70 71 72 |
# File 'lib/mls/models/address.rb', line 63 def save MLS.put("/addresses/#{id}", {:address => to_hash}, 400) do |response, code| if code == 200 || code == 400 MLS::Address::Parser.update(self, response.body) code == 200 else raise MLS::Exception::UnexpectedResponse, code end end end |
#to_hash ⇒ Object
74 75 76 77 78 79 |
# File 'lib/mls/models/address.rb', line 74 def to_hash hash = super hash[:photo_ids] = photos.map(&:id) if photos hash[:videos_attributes] = videos.map(&:to_hash) unless videos.blank? hash end |
#to_param ⇒ Object
81 82 83 |
# File 'lib/mls/models/address.rb', line 81 def to_param [state, city, "#{street_number} #{street}"].map(&:parameterize).join('/') end |
#url ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/mls/models/address.rb', line 85 def url if defined? Rails case Rails.env when "production" host = "42floors.com" when "staging" host = "staging.42floors.com" when "development","test" host = "spire.dev" end else host = "42floors.com" end "http://#{host}/#{slug}" end |