diff options
author | Dennis Schubert <software@dsx.cc> | 2013-05-20 23:28:13 +0400 |
---|---|---|
committer | Dennis Schubert <software@dsx.cc> | 2013-05-20 23:28:13 +0400 |
commit | fe9485dccf3d66d5a3735dbc8b1afd1a9414a31e (patch) | |
tree | 37f4ebf98b3b7a3e19e16e7a9a2dd5f24c18aad5 | |
parent | c63bcd5aeab3dba104cebf155ed57a25ca5c4b50 (diff) | |
parent | 1661615fe658b292da25fcbb2f2d9a9af80fa31a (diff) |
Merge branch 'hotfix/v0.1.0.1'v0.1.0.1
-rw-r--r-- | Changelog.md | 5 | ||||
-rw-r--r-- | app/models/location.rb | 11 | ||||
-rw-r--r-- | app/models/reshare.rb | 2 | ||||
-rw-r--r-- | app/models/status_message.rb | 1 | ||||
-rw-r--r-- | config/defaults.yml | 2 | ||||
-rw-r--r-- | spec/models/status_message_spec.rb | 23 |
6 files changed, 39 insertions, 5 deletions
diff --git a/Changelog.md b/Changelog.md index aa0cf68db..ffa3e2d56 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,8 @@ +# 0.1.0.1 + +* Regression fix: 500 for deleted reshares introduced by the locator +* Federate locations + # 0.1.0.0 ## Refactor diff --git a/app/models/location.rb b/app/models/location.rb index b3896c32e..a1fb30572 100644 --- a/app/models/location.rb +++ b/app/models/location.rb @@ -1,12 +1,17 @@ class Location < ActiveRecord::Base - - before_validation :split_coords, :on => :create + before_validation :split_coords, on: :create + validates_presence_of :lat, :lng attr_accessor :coordinates + include Diaspora::Federated::Base + xml_attr :address + xml_attr :lat + xml_attr :lng + belongs_to :status_message def split_coords - coordinates.present? ? (self.lat, self.lng = coordinates.split(',')) : false + self.lat, self.lng = coordinates.split(',') if coordinates.present? end end diff --git a/app/models/reshare.rb b/app/models/reshare.rb index 1815badb4..5b3c5341b 100644 --- a/app/models/reshare.rb +++ b/app/models/reshare.rb @@ -80,7 +80,7 @@ class Reshare < Post end def address - absolute_root.location.try(:address) + absolute_root.try(:location).try(:address) end private diff --git a/app/models/status_message.rb b/app/models/status_message.rb index c46c3e3d3..0c95ebc01 100644 --- a/app/models/status_message.rb +++ b/app/models/status_message.rb @@ -15,6 +15,7 @@ class StatusMessage < Post xml_name :status_message xml_attr :raw_message xml_attr :photos, :as => [Photo] + xml_attr :location, :as => Location has_many :photos, :dependent => :destroy, :foreign_key => :status_message_guid, :primary_key => :guid diff --git a/config/defaults.yml b/config/defaults.yml index 1fab2c585..fd563e7ea 100644 --- a/config/defaults.yml +++ b/config/defaults.yml @@ -4,7 +4,7 @@ defaults: version: - number: "0.1.0.0" # Do not touch unless doing a release, do not backport the version number that's in master but keep develp to always say "head" + number: "0.1.0.1" # Do not touch unless doing a release, do not backport the version number that's in master but keep develp to always say "head" heroku: false environment: url: "http://localhost:3000/" diff --git a/spec/models/status_message_spec.rb b/spec/models/status_message_spec.rb index d51a7713b..b160ae294 100644 --- a/spec/models/status_message_spec.rb +++ b/spec/models/status_message_spec.rb @@ -329,6 +329,29 @@ STR end end end + + context 'with a location' do + before do + @message.location = Location.new(coordinates: "1, 2").tap(&:save) + @xml = @message.to_xml.to_s + end + + it 'serializes the location' do + @xml.should include "location" + @xml.should include "lat" + @xml.should include "lng" + end + + describe ".from_xml" do + before do + @marshalled = StatusMessage.from_xml(@xml) + end + + it 'marshals the location' do + @marshalled.location.should be_present + end + end + end end describe '#after_dispatch' do |