From 3b8ddf76a36341ec4979421f6a850a1b8eff31fa Mon Sep 17 00:00:00 2001 From: danielvincent Date: Mon, 27 Sep 2010 18:34:47 -0700 Subject: [PATCH] temp route for atom feed. also, public atom currently displays all posts. --- app/controllers/publics_controller.rb | 7 +++++++ config/routes.rb | 2 ++ lib/diaspora/ostatus_builder.rb | 14 +++++++------- spec/lib/diaspora_ostatus_builder_spec.rb | 4 ++++ 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/app/controllers/publics_controller.rb b/app/controllers/publics_controller.rb index fcfdb0db6..76360fb90 100644 --- a/app/controllers/publics_controller.rb +++ b/app/controllers/publics_controller.rb @@ -4,7 +4,9 @@ class PublicsController < ApplicationController require File.expand_path('../../../lib/diaspora/parser', __FILE__) + require File.expand_path('../../../lib/diaspora/ostatus_builder', __FILE__) include Diaspora::Parser + include Diaspora::OstatusBuilder layout false def hcard @@ -40,4 +42,9 @@ class PublicsController < ApplicationController @user.receive_salmon params[:xml] end + def public + user = User.find_by_username(params[:username]) + render :xml => Diaspora::OstatusBuilder::build(user) + end + end diff --git a/config/routes.rb b/config/routes.rb index c2a38dbc6..4d227a0a1 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -32,6 +32,8 @@ Diaspora::Application.routes.draw do match 'get_to_the_choppa', :to => redirect("/signup") #public routes # + match 'public/:username', :to => 'publics#public' + match 'webfinger', :to => 'publics#webfinger' match 'hcard/users/:id', :to => 'publics#hcard' diff --git a/lib/diaspora/ostatus_builder.rb b/lib/diaspora/ostatus_builder.rb index f243a6d73..0770f4c5c 100644 --- a/lib/diaspora/ostatus_builder.rb +++ b/lib/diaspora/ostatus_builder.rb @@ -5,7 +5,7 @@ module Diaspora module OstatusBuilder - def build(user) + def self.build(user) if @user = User.find_by_id(user.id) xml = "" xml << create_headers @@ -16,8 +16,8 @@ module Diaspora else raise "Invalid user sent to builder" end end - def create_headers - <<-XML + def self.create_headers + <<-XML.strip Diaspora @@ -32,13 +32,13 @@ module Diaspora XML end - def create_endpoints + def self.create_endpoints <<-XML XML end - def create_subject + def self.create_subject <<-XML http://activitystrea.ms/schema/1.0/person @@ -49,7 +49,7 @@ module Diaspora XML end - def create_body + def self.create_body @user.raw_visible_posts.all.inject do |xml,curr| if curr.respond_to?(:to_activity) unless xml @@ -61,7 +61,7 @@ module Diaspora end end - def create_footer + def self.create_footer <<-XML XML diff --git a/spec/lib/diaspora_ostatus_builder_spec.rb b/spec/lib/diaspora_ostatus_builder_spec.rb index ce29e1543..cc46bd0c5 100644 --- a/spec/lib/diaspora_ostatus_builder_spec.rb +++ b/spec/lib/diaspora_ostatus_builder_spec.rb @@ -14,5 +14,9 @@ describe Diaspora::OstatusBuilder do let!(:atom) { Diaspora::OstatusBuilder::build(user) } + it 'should include a users posts' do + atom.should include status_message.message + end + end