federate location

This commit is contained in:
Jonne Haß 2013-05-20 18:44:19 +02:00 committed by Dennis Schubert
parent e33f4e68a8
commit 286e948054
3 changed files with 32 additions and 3 deletions

View file

@ -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

View file

@ -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

View file

@ -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