dacort-twitter 0.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,144 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class SearchTest < Test::Unit::TestCase
4
+ context "searching" do
5
+ setup do
6
+ @search = Twitter::Search.new
7
+ end
8
+
9
+ should "should be able to initialize with a search term" do
10
+ Twitter::Search.new('httparty').query[:q].should include('httparty')
11
+ end
12
+
13
+ should "should be able to specify from" do
14
+ @search.from('jnunemaker').query[:q].should include('from:jnunemaker')
15
+ end
16
+
17
+ should "should be able to specify to" do
18
+ @search.to('jnunemaker').query[:q].should include('to:jnunemaker')
19
+ end
20
+
21
+ should "should be able to specify referencing" do
22
+ @search.referencing('jnunemaker').query[:q].should include('@jnunemaker')
23
+ end
24
+
25
+ should "should alias references to referencing" do
26
+ @search.references('jnunemaker').query[:q].should include('@jnunemaker')
27
+ end
28
+
29
+ should "should alias ref to referencing" do
30
+ @search.ref('jnunemaker').query[:q].should include('@jnunemaker')
31
+ end
32
+
33
+ should "should be able to specify containing" do
34
+ @search.containing('milk').query[:q].should include('milk')
35
+ end
36
+
37
+ should "should alias contains to containing" do
38
+ @search.contains('milk').query[:q].should include('milk')
39
+ end
40
+
41
+ should "should be able to specify hashed" do
42
+ @search.hashed('twitter').query[:q].should include('#twitter')
43
+ end
44
+
45
+ should "should be able to specify the language" do
46
+ @search.lang('en')
47
+ @search.class.expects(:get).with('http://search.twitter.com/search.json', :query => {:lang => 'en', :q => ''}, :format => :json).returns({'foo' => 'bar'})
48
+ @search.fetch()
49
+ end
50
+
51
+ should "should be able to specify the number of results per page" do
52
+ @search.per_page(25)
53
+ @search.class.expects(:get).with('http://search.twitter.com/search.json', :query => {:rpp => 25, :q => ''}, :format => :json).returns({'foo' => 'bar'})
54
+ @search.fetch()
55
+ end
56
+
57
+ should "should be able to specify the page number" do
58
+ @search.page(20)
59
+ @search.class.expects(:get).with('http://search.twitter.com/search.json', :query => {:page => 20, :q => ''}, :format => :json).returns({'foo' => 'bar'})
60
+ @search.fetch()
61
+ end
62
+
63
+ should "should be able to specify only returning results greater than an id" do
64
+ @search.since(1234)
65
+ @search.class.expects(:get).with('http://search.twitter.com/search.json', :query => {:since_id => 1234, :q => ''}, :format => :json).returns({'foo' => 'bar'})
66
+ @search.fetch()
67
+ end
68
+
69
+ should "should be able to specify geo coordinates" do
70
+ @search.geocode('40.757929', '-73.985506', '25mi')
71
+ @search.class.expects(:get).with('http://search.twitter.com/search.json', :query => {:geocode => '40.757929,-73.985506,25mi', :q => ''}, :format => :json).returns({'foo' => 'bar'})
72
+ @search.fetch()
73
+ end
74
+
75
+ should "should be able to specify max id" do
76
+ @search.max(1234)
77
+ @search.class.expects(:get).with('http://search.twitter.com/search.json', :query => {:max_id => 1234, :q => ''}, :format => :json).returns({'foo' => 'bar'})
78
+ @search.fetch()
79
+ end
80
+
81
+ should "should be able to clear the filters set" do
82
+ @search.from('jnunemaker').to('oaknd1')
83
+ @search.clear.query.should == {:q => []}
84
+ end
85
+
86
+ should "should be able to chain methods together" do
87
+ @search.from('jnunemaker').to('oaknd1').referencing('orderedlist').containing('milk').hashed('twitter').lang('en').per_page(20).since(1234).geocode('40.757929', '-73.985506', '25mi')
88
+ @search.query[:q].should == ['from:jnunemaker', 'to:oaknd1', '@orderedlist', 'milk', '#twitter']
89
+ @search.query[:lang].should == 'en'
90
+ @search.query[:rpp].should == 20
91
+ @search.query[:since_id].should == 1234
92
+ @search.query[:geocode].should == '40.757929,-73.985506,25mi'
93
+ end
94
+
95
+ context "fetching" do
96
+ setup do
97
+ stub_get('http://search.twitter.com:80/search.json?q=%40jnunemaker', 'search.json')
98
+ @search = Twitter::Search.new('@jnunemaker')
99
+ @response = @search.fetch
100
+ end
101
+
102
+ should "should return results" do
103
+ @response.results.size.should == 15
104
+ end
105
+
106
+ should "should support dot notation" do
107
+ first = @response.results.first
108
+ first.text.should == %q(Someone asked about a tweet reader. Easy to do in ruby with @jnunemaker's twitter gem and the win32-sapi gem, if you are on windows.)
109
+ first.from_user.should == 'PatParslow'
110
+ end
111
+
112
+ should "cache fetched results so multiple fetches don't keep hitting api" do
113
+ Twitter::Search.expects(:get).never
114
+ @search.fetch
115
+ end
116
+
117
+ should "rehit api if fetch is called with true" do
118
+ Twitter::Search.expects(:get).once
119
+ @search.fetch(true)
120
+ end
121
+ end
122
+
123
+ context "iterating over results" do
124
+ setup do
125
+ stub_get('http://search.twitter.com:80/search.json?q=from%3Ajnunemaker', 'search_from_jnunemaker.json')
126
+ @search.from('jnunemaker')
127
+ end
128
+
129
+ should "work" do
130
+ @search.each { |result| result.should_not be(nil) }
131
+ end
132
+
133
+ should "work multiple times in a row" do
134
+ @search.each { |result| result.should_not be(nil) }
135
+ @search.each { |result| result.should_not be(nil) }
136
+ end
137
+ end
138
+
139
+ should "should be able to iterate over results" do
140
+ @search.respond_to?(:each).should be(true)
141
+ end
142
+ end
143
+
144
+ end
@@ -0,0 +1,19 @@
1
+ require 'test_helper'
2
+
3
+ class TwitterTest < Test::Unit::TestCase
4
+ should "have firehose method for public timeline" do
5
+ stub_get('http://twitter.com:80/statuses/public_timeline.json', 'firehose.json')
6
+ hose = Twitter.firehose
7
+ hose.size.should == 20
8
+ first = hose.first
9
+ first.text.should == '#torrents Ultimativer Flirt Guide - In 10 Minuten jede Frau erobern: Ultimativer Flirt Guide - In 10 Mi.. http://tinyurl.com/d3okh4'
10
+ first.user.name.should == 'P2P Torrents'
11
+ end
12
+
13
+ should "have user method for unauthenticated calls to get a user's information" do
14
+ stub_get('http://twitter.com:80/users/show/jnunemaker.json', 'user.json')
15
+ user = Twitter.user('jnunemaker')
16
+ user.name.should == 'John Nunemaker'
17
+ user.description.should == 'Loves his wife, ruby, notre dame football and iu basketball'
18
+ end
19
+ end
metadata ADDED
@@ -0,0 +1,181 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dacort-twitter
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.5
5
+ platform: ruby
6
+ authors:
7
+ - John Nunemaker
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-04-14 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: oauth
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - "="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.3.2
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: mash
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.0.3
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: httparty
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "="
42
+ - !ruby/object:Gem::Version
43
+ version: 0.4.2
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: thoughtbot-shoulda
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: "0"
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: jeremymcanally-matchy
57
+ type: :development
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: mocha
67
+ type: :development
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: "0"
74
+ version:
75
+ - !ruby/object:Gem::Dependency
76
+ name: fakeweb
77
+ type: :development
78
+ version_requirement:
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: "0"
84
+ version:
85
+ - !ruby/object:Gem::Dependency
86
+ name: mash
87
+ type: :development
88
+ version_requirement:
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: "0"
94
+ version:
95
+ description:
96
+ email: nunemaker@gmail.com
97
+ executables: []
98
+
99
+ extensions: []
100
+
101
+ extra_rdoc_files:
102
+ - README.rdoc
103
+ files:
104
+ - History
105
+ - License
106
+ - Notes
107
+ - README.rdoc
108
+ - Rakefile
109
+ - VERSION.yml
110
+ - examples/connect.rb
111
+ - examples/friendship_existance.rb
112
+ - examples/helpers/config_store.rb
113
+ - examples/httpauth.rb
114
+ - examples/search.rb
115
+ - examples/timeline.rb
116
+ - examples/update.rb
117
+ - examples/user.rb
118
+ - lib/twitter.rb
119
+ - lib/twitter/base.rb
120
+ - lib/twitter/httpauth.rb
121
+ - lib/twitter/oauth.rb
122
+ - lib/twitter/request.rb
123
+ - lib/twitter/search.rb
124
+ - test/fixtures/firehose.json
125
+ - test/fixtures/friends_timeline.json
126
+ - test/fixtures/rate_limit_exceeded.json
127
+ - test/fixtures/replies.json
128
+ - test/fixtures/search.json
129
+ - test/fixtures/search_from_jnunemaker.json
130
+ - test/fixtures/status.json
131
+ - test/fixtures/user.json
132
+ - test/fixtures/user_timeline.json
133
+ - test/test_helper.rb
134
+ - test/twitter/base_test.rb
135
+ - test/twitter/httpauth_test.rb
136
+ - test/twitter/oauth_test.rb
137
+ - test/twitter/request_test.rb
138
+ - test/twitter/search_test.rb
139
+ - test/twitter_test.rb
140
+ has_rdoc: true
141
+ homepage: http://github.com/jnunemaker/twitter
142
+ post_install_message:
143
+ rdoc_options:
144
+ - --charset=UTF-8
145
+ require_paths:
146
+ - lib
147
+ required_ruby_version: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: "0"
152
+ version:
153
+ required_rubygems_version: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: "0"
158
+ version:
159
+ requirements: []
160
+
161
+ rubyforge_project: twitter
162
+ rubygems_version: 1.2.0
163
+ signing_key:
164
+ specification_version: 2
165
+ summary: wrapper for the twitter api (oauth only)
166
+ test_files:
167
+ - test/test_helper.rb
168
+ - test/twitter/base_test.rb
169
+ - test/twitter/httpauth_test.rb
170
+ - test/twitter/oauth_test.rb
171
+ - test/twitter/request_test.rb
172
+ - test/twitter/search_test.rb
173
+ - test/twitter_test.rb
174
+ - examples/connect.rb
175
+ - examples/friendship_existance.rb
176
+ - examples/helpers/config_store.rb
177
+ - examples/httpauth.rb
178
+ - examples/search.rb
179
+ - examples/timeline.rb
180
+ - examples/update.rb
181
+ - examples/user.rb