From 4819ce694b7b034a2a609370bcbe718601a28ada Mon Sep 17 00:00:00 2001 From: Raphael Date: Thu, 8 Jul 2010 10:27:22 -0700 Subject: [PATCH 1/3] removed emspec from gemfile --- Gemfile | 1 - app/controllers/users_controller.rb | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index d36727342..fb8243e53 100644 --- a/Gemfile +++ b/Gemfile @@ -32,7 +32,6 @@ group :test do gem 'autotest' gem 'factory_girl_rails' gem 'database_cleaner' - gem 'em-spec', :git => 'http://github.com/danielsdeleo/em-spec.git' end group :development do diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index eb6a95578..91c199c97 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -4,4 +4,8 @@ class UsersController < ApplicationController def index @users = User.sort(:created_at.desc).all end + + def show + @user = User.find(params[:id]) + end end From 93c5404cabdf080995c07fefe12ddf1dd55d92e7 Mon Sep 17 00:00:00 2001 From: ilya Date: Thu, 8 Jul 2010 13:28:02 -0400 Subject: [PATCH 2/3] DG IZ message handler is a singleton' --- app/controllers/person_requests_controller.rb | 5 ++--- lib/common.rb | 6 ++---- lib/message_handler.rb | 7 ++++++- spec/lib/message_handler_spec.rb | 6 +++++- spec/models/person_request_spec.rb | 5 +++++ 5 files changed, 20 insertions(+), 9 deletions(-) diff --git a/app/controllers/person_requests_controller.rb b/app/controllers/person_requests_controller.rb index 80430ad94..4dba011d0 100644 --- a/app/controllers/person_requests_controller.rb +++ b/app/controllers/person_requests_controller.rb @@ -24,10 +24,9 @@ class PersonRequestsController < ApplicationController end def create - @person_request = PersonRequest.new(params[:person_request]) - @person_request.sender = current_user + @person_request = PersonRequest.for(params[:person_request][:url]) - if @person_request.save + if true flash[:notice] = "Successfully created person request." redirect_to @person_request else diff --git a/lib/common.rb b/lib/common.rb index 2c117db58..dcc773ab8 100644 --- a/lib/common.rb +++ b/lib/common.rb @@ -56,8 +56,8 @@ module Diaspora module Webhooks def self.included(klass) klass.class_eval do - @@queue = MessageHandler.new - + @@queue = MessageHandler.instance + def notify_people if self.person_id == User.first.id push_to(people_with_permissions) @@ -76,9 +76,7 @@ module Diaspora def push_to_url(url) if url - puts "AHHHHHH, sending" xml = self.class.build_xml_for([self]) - puts xml @@queue.add_post_request( [url], xml ) @@queue.process end diff --git a/lib/message_handler.rb b/lib/message_handler.rb index ccd1456bc..b32926979 100644 --- a/lib/message_handler.rb +++ b/lib/message_handler.rb @@ -1,4 +1,5 @@ class MessageHandler + include Singleton NUM_TRIES = 3 TIMEOUT = 5 #seconds @@ -7,6 +8,10 @@ class MessageHandler @queue = EM::Queue.new end + def clear + @queue = EM::Queue.new + end + def add_get_request(destinations) destinations.each{ |dest| @queue.push(Message.new(:get, dest))} end @@ -22,7 +27,7 @@ class MessageHandler case query.type when :post http = EventMachine::HttpRequest.new(query.destination).post :timeout => TIMEOUT, :body =>{:xml => query.body} - http.callback {process} + http.callback {puts "processing"; process} when :get http = EventMachine::HttpRequest.new(query.destination).get :timeout => TIMEOUT http.callback {send_to_seed(query, http.response); process} diff --git a/spec/lib/message_handler_spec.rb b/spec/lib/message_handler_spec.rb index 3ec0a6e2c..ffb4b078c 100644 --- a/spec/lib/message_handler_spec.rb +++ b/spec/lib/message_handler_spec.rb @@ -2,11 +2,15 @@ require File.dirname(__FILE__) + '/../spec_helper' describe MessageHandler do before do - @handler = MessageHandler.new + @handler = MessageHandler.instance @message_body = "I want to pump you up" @message_urls = ["http://www.google.com/", "http://yahoo.com/", "http://foo.com/"] end + after do + @handler.clear + end + describe 'GET messages' do describe 'creating a GET query' do it 'should be able to add a GET query to the queue with required destinations' do diff --git a/spec/models/person_request_spec.rb b/spec/models/person_request_spec.rb index e23b5de64..acf9528f3 100644 --- a/spec/models/person_request_spec.rb +++ b/spec/models/person_request_spec.rb @@ -33,4 +33,9 @@ describe PersonRequest do Person.where(:url => person.url).first.active.should be true end + it "should send a person request to specified url" do + PersonRequest.send(:class_variable_get, :@@queue).should_receive(:add_post_request) + PersonRequest.for("http://google.com/") + end + end From 97b1e8dd5d8671e3c1ea7a71e5110c2a47e55de4 Mon Sep 17 00:00:00 2001 From: Raphael Date: Thu, 8 Jul 2010 10:28:23 -0700 Subject: [PATCH 3/3] oops --- app/controllers/users_controller.rb | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 91c199c97..1da4454c5 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -5,7 +5,4 @@ class UsersController < ApplicationController @users = User.sort(:created_at.desc).all end - def show - @user = User.find(params[:id]) - end end