From c23e6d9afdfaee1a18d41892a10ce68324dead3b Mon Sep 17 00:00:00 2001 From: Maxwell Salzberg Date: Thu, 26 Jan 2012 12:21:07 -0800 Subject: [PATCH] dispatcher#post should not take opts --- app/models/user.rb | 5 ++--- lib/postzord/dispatcher.rb | 19 ++++++++++++++++--- lib/postzord/dispatcher/private.rb | 12 ------------ lib/postzord/dispatcher/public.rb | 12 ------------ 4 files changed, 18 insertions(+), 30 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 1fc56abf9..f6fd62367 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -237,9 +237,8 @@ class User < ActiveRecord::Base end def dispatch_post(post, opts = {}) - additional_people = opts.delete(:additional_subscribers) - mailman = Postzord::Dispatcher.build(self, post, :additional_subscribers => additional_people) - mailman.post(opts) + mailman = Postzord::Dispatcher.build(self, post, opts) + mailman.post end def update_post(post, post_hash = {}) diff --git a/lib/postzord/dispatcher.rb b/lib/postzord/dispatcher.rb index 3e3d0707f..b80562f22 100644 --- a/lib/postzord/dispatcher.rb +++ b/lib/postzord/dispatcher.rb @@ -7,7 +7,20 @@ class Postzord::Dispatcher require File.join(Rails.root, 'lib/postzord/dispatcher/private') require File.join(Rails.root, 'lib/postzord/dispatcher/public') - attr_reader :sender, :object, :xml, :subscribers + attr_reader :sender, :object, :xml, :subscribers, :opts + + # @param user [User] User dispatching the object in question + # @param object [Object] The object to be sent to other Diaspora installations + # @opt additional_subscribers [Array] Additional subscribers + def initialize(user, object, opts={}) + @sender = user + @object = object + @xml = @object.to_diaspora_xml + @opts = opts + + additional_subscribers = opts[:additional_subscribers] || [] + @subscribers = subscribers_from_object | [*additional_subscribers] + end # @return [Postzord::Dispatcher] Public or private dispatcher depending on the object's intended audience def self.build(user, object, opts={}) @@ -33,9 +46,9 @@ class Postzord::Dispatcher end # @return [Object] - def post(opts={}) + def post self.post_to_subscribers if @subscribers.present? - self.deliver_to_services(opts[:url], opts[:services] || []) + self.deliver_to_services(@opts[:url], @opts[:services] || []) self.process_after_dispatch_hooks @object end diff --git a/lib/postzord/dispatcher/private.rb b/lib/postzord/dispatcher/private.rb index 70690afcb..1622a2b30 100644 --- a/lib/postzord/dispatcher/private.rb +++ b/lib/postzord/dispatcher/private.rb @@ -4,18 +4,6 @@ class Postzord::Dispatcher::Private < Postzord::Dispatcher - # @param user [User] User dispatching the object in question - # @param object [Object] The object to be sent to other Diaspora installations - # @opt additional_subscribers [Array] Additional subscribers - def initialize(user, object, opts={}) - @sender = user - @object = object - @xml = @object.to_diaspora_xml - - additional_subscribers = opts[:additional_subscribers] || [] - @subscribers = subscribers_from_object | [*additional_subscribers] - end - # @param user [User] # @param activity [String] # @return [Salmon::EncryptedSlap] diff --git a/lib/postzord/dispatcher/public.rb b/lib/postzord/dispatcher/public.rb index dd13b1644..6e7b134aa 100644 --- a/lib/postzord/dispatcher/public.rb +++ b/lib/postzord/dispatcher/public.rb @@ -4,18 +4,6 @@ class Postzord::Dispatcher::Public < Postzord::Dispatcher - # @param user [User] User dispatching the object in question - # @param object [Object] The object to be sent to other Diaspora installations - # @opt additional_subscribers [Array] Additional subscribers - def initialize(user, object, opts={}) - @sender = user - @object = object - @xml = @object.to_diaspora_xml - - additional_subscribers = opts[:additional_subscribers] || [] - @subscribers = subscribers_from_object | [*additional_subscribers] - end - # @param user [User] # @param activity [String] # @return [Salmon::EncryptedSlap]