From 1ac688f82cb4672081248322f89fe6d4fda04219 Mon Sep 17 00:00:00 2001 From: maxwell <maxwell@joindiaspora.com> Date: Wed, 9 Mar 2011 17:33:47 -0800 Subject: [PATCH] moved an ostatus builder query out to the controller, where it belongs, and corrected the order --- app/controllers/users_controller.rb | 3 ++- lib/diaspora/ostatus_builder.rb | 4 ++-- spec/lib/diaspora/ostatus_builder.rb | 3 +-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index a50b4b2eef..fb3a568d11 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -68,8 +68,9 @@ class UsersController < ApplicationController user = User.find_by_username(params[:username]) if user + posts = Post.where(:author_id => user.person.id, :public => true).order('created_at DESC') director = Diaspora::Director.new - ostatus_builder = Diaspora::OstatusBuilder.new(user) + ostatus_builder = Diaspora::OstatusBuilder.new(user, posts) render :xml => director.build(ostatus_builder), :content_type => 'application/atom+xml' else diff --git a/lib/diaspora/ostatus_builder.rb b/lib/diaspora/ostatus_builder.rb index ba8cbd7fa8..9fd8d733de 100644 --- a/lib/diaspora/ostatus_builder.rb +++ b/lib/diaspora/ostatus_builder.rb @@ -21,9 +21,9 @@ module Diaspora class OstatusBuilder include Diaspora::Webhooks - def initialize(user) + def initialize(user, posts) @user = user - @posts = Post.where(:author_id => @user.person.id, :public => true) + @posts = posts end def create_headers diff --git a/spec/lib/diaspora/ostatus_builder.rb b/spec/lib/diaspora/ostatus_builder.rb index 687443104b..d9b437ec86 100644 --- a/spec/lib/diaspora/ostatus_builder.rb +++ b/spec/lib/diaspora/ostatus_builder.rb @@ -22,11 +22,10 @@ describe Diaspora::OstatusBuilder do arr << s end } - let!(:atom) { director = Diaspora::Director.new; director.build(Diaspora::OstatusBuilder.new(user)) } + let!(:atom) { director = Diaspora::Director.new; director.build(Diaspora::OstatusBuilder.new(user, public_status_messages)) } it 'should include a users posts' do public_status_messages.each{ |status| atom.should include status.message } - private_status_messages.each{ |status| atom.should_not include status.message } end end -- GitLab