diff --git a/app/models/user/social_actions.rb b/app/models/user/social_actions.rb index fbc0640a5..3244b9bad 100644 --- a/app/models/user/social_actions.rb +++ b/app/models/user/social_actions.rb @@ -1,19 +1,19 @@ module User::SocialActions - def comment!(post, text, opts={}) - participations.where(:target_id => post).first || participate!(post) - Comment::Generator.new(self.person, post, text).create!(opts) + def comment!(target, text, opts={}) + participations.where(:target_id => target).first || participate!(target) + Comment::Generator.new(self, target, text).create!(opts) end def participate!(target, opts={}) - Participation::Generator.new(self.person, target).create!(opts) + Participation::Generator.new(self, target).create!(opts) end def like!(target, opts={}) participations.where(:target_id => target).first || participate!(target) - Like::Generator.new(self.person, target).create!(opts) + Like::Generator.new(self, target).create!(opts) end def build_comment(options={}) - Comment::Generator.new(self.person, options.delete(:post), options.delete(:text)).build(options) + Comment::Generator.new(self, options.delete(:post), options.delete(:text)).build(options) end end \ No newline at end of file diff --git a/lib/federated/generator.rb b/lib/federated/generator.rb index f9dd2d265..68f95e292 100644 --- a/lib/federated/generator.rb +++ b/lib/federated/generator.rb @@ -1,28 +1,28 @@ module Federated class Generator - def initialize(person, target) - @person = person + def initialize(user, target) + @user = user @target = target end - def build(options={}) - options.merge!(relayable_options) - relayable = self.class.federated_class.new(options.merge(:author_id => @person.id)) - relayable.set_guid - relayable.initialize_signatures - relayable - end - def create!(options={}) relayable = build(options) if relayable.save - Postzord::Dispatcher.defer_build_and_post(@person, relayable) + Postzord::Dispatcher.defer_build_and_post(@user, relayable) relayable else false end end + def build(options={}) + options.merge!(relayable_options) + relayable = self.class.federated_class.new(options.merge(:author_id => @user.person.id)) + relayable.set_guid + relayable.initialize_signatures + relayable + end + protected def relayable_options diff --git a/spec/models/like_spec.rb b/spec/models/like_spec.rb index e9461192c..46d676b76 100644 --- a/spec/models/like_spec.rb +++ b/spec/models/like_spec.rb @@ -90,7 +90,7 @@ describe Like do @object_on_remote_parent = @local_luke.like!(@remote_parent) end - let(:build_object) { Like::Generator.new(alice.person, @status).build } + let(:build_object) { Like::Generator.new(alice, @status).build } it_should_behave_like 'it is relayable' end end diff --git a/spec/models/participation_spec.rb b/spec/models/participation_spec.rb index 12a1da5a0..61a8fdac8 100644 --- a/spec/models/participation_spec.rb +++ b/spec/models/participation_spec.rb @@ -16,7 +16,7 @@ describe Participation do @object_on_remote_parent = @local_luke.participate!(@remote_parent) end - let(:build_object) { Participation::Generator.new(alice.person, @status).build } + let(:build_object) { Participation::Generator.new(alice, @status).build } it_should_behave_like 'it is relayable' end