diff --git a/lib/twitter/search.rb b/lib/twitter/search.rb index e2a6f2d13..04c1183d3 100644 --- a/lib/twitter/search.rb +++ b/lib/twitter/search.rb @@ -72,8 +72,21 @@ def since(since_id) @query[:since_id] = since_id self end + + # From the advanced search form, not documented in the API + # Format YYYY-MM-DD + def since_date(since_date) + @query[:since] = since_date + self + end + + # From the advanced search form, not documented in the API + # Format YYYY-MM-DD + def until_date(until_date) + @query[:until] = until_date + self + end - # Search tweets by latitude, longitude, and a given range. # Ranges like 25km and 50mi work. def geocode(lat, long, range) @query[:geocode] = [lat, long, range].join(',') diff --git a/test/twitter/search_test.rb b/test/twitter/search_test.rb index a5754cf07..83b036e05 100644 --- a/test/twitter/search_test.rb +++ b/test/twitter/search_test.rb @@ -81,6 +81,18 @@ class SearchTest < Test::Unit::TestCase @search.fetch() end + should "should be able to specify since a date" do + @search.since_date('2009-04-14') + @search.class.expects(:get).with('http://search.twitter.com/search.json', :query => { :since => '2009-04-14', :q => ''}, :format => :json).returns({ 'foo' => 'bar'}) + @search.fetch + end + + should "should be able to specify until a date" do + @search.until_date('2009-04-14') + @search.class.expects(:get).with('http://search.twitter.com/search.json', :query => { :until => '2009-04-14', :q => ''}, :format => :json).returns({ 'foo' => 'bar'}) + @search.fetch + end + should "should be able to specify geo coordinates" do @search.geocode('40.757929', '-73.985506', '25mi') @search.class.expects(:get).with('http://search.twitter.com/search.json', :query => {:geocode => '40.757929,-73.985506,25mi', :q => ''}, :format => :json, :headers => {'User-Agent' => 'Ruby Twitter Gem'}).returns({'foo' => 'bar'}) @@ -156,4 +168,4 @@ class SearchTest < Test::Unit::TestCase end end -end \ No newline at end of file +end