From 655e92ebdd94814301db7ddae0fec6fba940296a Mon Sep 17 00:00:00 2001 From: Raphael Date: Thu, 18 Nov 2010 18:04:29 -0800 Subject: [PATCH] Add some scopes for Request, take putses out of specs --- app/models/request.rb | 11 ++++++++++ lib/diaspora/user/querying.rb | 2 +- lib/rake_helpers.rb | 4 ++-- spec/models/request_spec.rb | 31 +++++++++++++++++++++++++++++ spec/models/user/connecting_spec.rb | 4 ++-- 5 files changed, 47 insertions(+), 5 deletions(-) diff --git a/app/models/request.rb b/app/models/request.rb index 294aec984..ca33c5dc0 100644 --- a/app/models/request.rb +++ b/app/models/request.rb @@ -23,6 +23,17 @@ class Request validate :no_pending_request, :if => :sent #before_validation :clean_link + + scope :from, lambda { |person| + target = (person.is_a?(User) ? person.person : person) + where(:from_id => target.id) + } + + scope :to, lambda { |person| + target = (person.is_a?(User) ? person.person : person) + where(:to_id => target.id) + } + def self.instantiate(opts = {}) self.new(:from => opts[:from], diff --git a/lib/diaspora/user/querying.rb b/lib/diaspora/user/querying.rb index d72b71ddb..d7933238a 100644 --- a/lib/diaspora/user/querying.rb +++ b/lib/diaspora/user/querying.rb @@ -85,7 +85,7 @@ module Diaspora end def request_for(to_person) - Request.first(:from_id => self.person.id, :to_id => to_person.id) + Request.from(self.person).to(to_person).first end end end diff --git a/lib/rake_helpers.rb b/lib/rake_helpers.rb index 7d64c7e90..d58c9af83 100644 --- a/lib/rake_helpers.rb +++ b/lib/rake_helpers.rb @@ -14,10 +14,10 @@ module RakeHelpers backer_name = backers[n+offset][0].to_s.strip backer_email = backers[n+offset][1].to_s.gsub('.ksr', '').strip unless User.find_by_email(backer_email) - puts "sending email to: #{backer_name} #{backer_email}" + puts "sending email to: #{backer_name} #{backer_email}" unless Rails.env == 'test' Invitation.create_invitee(:email => backer_email, :name => backer_name, :invites => 5) else - puts "user with the email exists: #{backer_email} , #{backer_name} " + puts "user with the email exists: #{backer_email} , #{backer_name} " unless Rails.env == 'test' end end churn_through diff --git a/spec/models/request_spec.rb b/spec/models/request_spec.rb index 7c9eae0aa..aa975a9f0 100644 --- a/spec/models/request_spec.rb +++ b/spec/models/request_spec.rb @@ -43,6 +43,37 @@ describe Request do end end + describe 'scopes' do + before do + @request = Request.instantiate(:from => user.person, :to => user2.person, :into => aspect) + @request.save + end + describe '.from' do + it 'returns requests from a person' do + query = Request.from(user.person) + query.first.should == @request + end + + it 'returns requests from a user' do + query = Request.from(user) + query.first.should == @request + end + end + describe '.to' do + it 'returns requests to a person' do + query = Request.to(user2.person) + query.first.should == @request + end + it 'returns requests to a user' do + query = Request.to(user2) + query.first.should == @request + end + end + it 'chains' do + Request.from(user).to(user2.person).first.should == @request + end + end + describe '#request_from_me' do it 'recognizes requests from me' do user.request_from_me?(request).should be_true diff --git a/spec/models/user/connecting_spec.rb b/spec/models/user/connecting_spec.rb index ceca53475..437116688 100644 --- a/spec/models/user/connecting_spec.rb +++ b/spec/models/user/connecting_spec.rb @@ -53,9 +53,9 @@ describe Diaspora::UserModules::Connecting do before do request_for_user.save user.receive(request_for_user.to_diaspora_xml, person) - @received_request = Request.first(:from_id => request_for_user.from.id, :to_id => user.person.id, :sent => false) + @received_request = Request.from(person).to(user.person).first(:sent => false) user.receive(request2_for_user.to_diaspora_xml, person_one) - @received_request2 = Request.first(:from_id => request2_for_user.from.id, :to_id => user.person.id, :sent => false) + @received_request2 = Request.from(person_one).to(user.person).first(:sent => false) user.reload end