From 9ef83acdcbe682a8b5a325f89d566f7ef97fffc2 Mon Sep 17 00:00:00 2001 From: Erik Michaels-Ober Date: Thu, 23 Sep 2010 16:32:51 -0700 Subject: [PATCH] Added methods retweeted and not_retweeted, allowing to filter tweets that have RT or not. It adds 'rt' or '-rt' to the query. (@levycarneiro) --- lib/twitter/search.rb | 10 ++++++++++ test/twitter/search_test.rb | 12 ++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/twitter/search.rb b/lib/twitter/search.rb index efffffad5..7549a78a2 100644 --- a/lib/twitter/search.rb +++ b/lib/twitter/search.rb @@ -42,6 +42,16 @@ def containing(word, exclude=false) end alias :contains :containing + def retweeted + @query[:q] << "rt" + self + end + + def not_retweeted + @query[:q] << "-rt" + self + end + # adds filtering based on hash tag ie: #twitter def hashed(tag, exclude=false) @query[:q] << "#{exclude ? "-" : ""}\##{tag}" diff --git a/test/twitter/search_test.rb b/test/twitter/search_test.rb index 3d633539f..865a45bf3 100644 --- a/test/twitter/search_test.rb +++ b/test/twitter/search_test.rb @@ -65,6 +65,14 @@ class SearchTest < Test::Unit::TestCase @search.contains('milk').query[:q].should include('milk') end + should "should be able to specify retweeted" do + @search.retweeted.query[:q].should include('rt') + end + + should "should be able to specify not_retweeted" do + @search.not_retweeted.query[:q].should include('-rt') + end + should "should be able to specify hashed" do @search.hashed('twitter').query[:q].should include('#twitter') end @@ -139,8 +147,8 @@ class SearchTest < Test::Unit::TestCase end should "should be able to chain methods together" do - @search.from('jnunemaker').to('oaknd1').referencing('orderedlist').containing('milk').hashed('twitter').lang('en').per_page(20).since(1234).geocode('40.757929', '-73.985506', '25mi') - @search.query[:q].should == ['from:jnunemaker', 'to:oaknd1', '@orderedlist', 'milk', '#twitter'] + @search.from('jnunemaker').to('oaknd1').referencing('orderedlist').containing('milk').retweeted.hashed('twitter').lang('en').per_page(20).since(1234).geocode('40.757929', '-73.985506', '25mi') + @search.query[:q].should == ['from:jnunemaker', 'to:oaknd1', '@orderedlist', 'milk', 'rt', '#twitter'] @search.query[:lang].should == 'en' @search.query[:rpp].should == 20 @search.query[:since_id].should == 1234