dispatcher#post should not take opts

This commit is contained in:
Maxwell Salzberg 2012-01-26 12:21:07 -08:00 committed by danielgrippi
parent da9e57b2c9
commit c23e6d9afd
4 changed files with 18 additions and 30 deletions

View file

@ -237,9 +237,8 @@ class User < ActiveRecord::Base
end end
def dispatch_post(post, opts = {}) def dispatch_post(post, opts = {})
additional_people = opts.delete(:additional_subscribers) mailman = Postzord::Dispatcher.build(self, post, opts)
mailman = Postzord::Dispatcher.build(self, post, :additional_subscribers => additional_people) mailman.post
mailman.post(opts)
end end
def update_post(post, post_hash = {}) def update_post(post, post_hash = {})

View file

@ -7,7 +7,20 @@ class Postzord::Dispatcher
require File.join(Rails.root, 'lib/postzord/dispatcher/private') require File.join(Rails.root, 'lib/postzord/dispatcher/private')
require File.join(Rails.root, 'lib/postzord/dispatcher/public') 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<Person>] 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 # @return [Postzord::Dispatcher] Public or private dispatcher depending on the object's intended audience
def self.build(user, object, opts={}) def self.build(user, object, opts={})
@ -33,9 +46,9 @@ class Postzord::Dispatcher
end end
# @return [Object] # @return [Object]
def post(opts={}) def post
self.post_to_subscribers if @subscribers.present? 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 self.process_after_dispatch_hooks
@object @object
end end

View file

@ -4,18 +4,6 @@
class Postzord::Dispatcher::Private < Postzord::Dispatcher 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<Person>] 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 user [User]
# @param activity [String] # @param activity [String]
# @return [Salmon::EncryptedSlap] # @return [Salmon::EncryptedSlap]

View file

@ -4,18 +4,6 @@
class Postzord::Dispatcher::Public < Postzord::Dispatcher 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<Person>] 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 user [User]
# @param activity [String] # @param activity [String]
# @return [Salmon::EncryptedSlap] # @return [Salmon::EncryptedSlap]