cicloid-twitter 0.6.1

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,138 @@
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 clear the filters set" do
76
+ @search.from('jnunemaker').to('oaknd1')
77
+ @search.clear.query.should == {:q => []}
78
+ end
79
+
80
+ should "should be able to chain methods together" do
81
+ @search.from('jnunemaker').to('oaknd1').referencing('orderedlist').containing('milk').hashed('twitter').lang('en').per_page(20).since(1234).geocode('40.757929', '-73.985506', '25mi')
82
+ @search.query[:q].should == ['from:jnunemaker', 'to:oaknd1', '@orderedlist', 'milk', '#twitter']
83
+ @search.query[:lang].should == 'en'
84
+ @search.query[:rpp].should == 20
85
+ @search.query[:since_id].should == 1234
86
+ @search.query[:geocode].should == '40.757929,-73.985506,25mi'
87
+ end
88
+
89
+ context "fetching" do
90
+ setup do
91
+ stub_get('http://search.twitter.com:80/search.json?q=%40jnunemaker', 'search.json')
92
+ @search = Twitter::Search.new('@jnunemaker')
93
+ @response = @search.fetch
94
+ end
95
+
96
+ should "should return results" do
97
+ @response.results.size.should == 15
98
+ end
99
+
100
+ should "should support dot notation" do
101
+ first = @response.results.first
102
+ 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.)
103
+ first.from_user.should == 'PatParslow'
104
+ end
105
+
106
+ should "cache fetched results so multiple fetches don't keep hitting api" do
107
+ Twitter::Search.expects(:get).never
108
+ @search.fetch
109
+ end
110
+
111
+ should "rehit api if fetch is called with true" do
112
+ Twitter::Search.expects(:get).once
113
+ @search.fetch(true)
114
+ end
115
+ end
116
+
117
+ context "iterating over results" do
118
+ setup do
119
+ stub_get('http://search.twitter.com:80/search.json?q=from%3Ajnunemaker', 'search_from_jnunemaker.json')
120
+ @search.from('jnunemaker')
121
+ end
122
+
123
+ should "work" do
124
+ @search.each { |result| result.should_not be(nil) }
125
+ end
126
+
127
+ should "work multiple times in a row" do
128
+ @search.each { |result| result.should_not be(nil) }
129
+ @search.each { |result| result.should_not be(nil) }
130
+ end
131
+ end
132
+
133
+ should "should be able to iterate over results" do
134
+ @search.respond_to?(:each).should be(true)
135
+ end
136
+ end
137
+
138
+ end
@@ -0,0 +1,12 @@
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
+ end
metadata ADDED
@@ -0,0 +1,178 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cicloid-twitter
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.1
5
+ platform: ruby
6
+ authors:
7
+ - John Nunemaker
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-04-12 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"
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"
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
+ - lib/twitter.rb
118
+ - lib/twitter/base.rb
119
+ - lib/twitter/httpauth.rb
120
+ - lib/twitter/oauth.rb
121
+ - lib/twitter/request.rb
122
+ - lib/twitter/search.rb
123
+ - test/fixtures/firehose.json
124
+ - test/fixtures/friends_timeline.json
125
+ - test/fixtures/rate_limit_exceeded.json
126
+ - test/fixtures/replies.json
127
+ - test/fixtures/search.json
128
+ - test/fixtures/search_from_jnunemaker.json
129
+ - test/fixtures/status.json
130
+ - test/fixtures/user_timeline.json
131
+ - test/test_helper.rb
132
+ - test/twitter/base_test.rb
133
+ - test/twitter/httpauth_test.rb
134
+ - test/twitter/oauth_test.rb
135
+ - test/twitter/request_test.rb
136
+ - test/twitter/search_test.rb
137
+ - test/twitter_test.rb
138
+ has_rdoc: true
139
+ homepage: http://github.com/jnunemaker/twitter
140
+ post_install_message:
141
+ rdoc_options:
142
+ - --charset=UTF-8
143
+ require_paths:
144
+ - lib
145
+ required_ruby_version: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: "0"
150
+ version:
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: "0"
156
+ version:
157
+ requirements: []
158
+
159
+ rubyforge_project: twitter
160
+ rubygems_version: 1.2.0
161
+ signing_key:
162
+ specification_version: 2
163
+ summary: wrapper for the twitter api (oauth only)
164
+ test_files:
165
+ - test/test_helper.rb
166
+ - test/twitter/base_test.rb
167
+ - test/twitter/httpauth_test.rb
168
+ - test/twitter/oauth_test.rb
169
+ - test/twitter/request_test.rb
170
+ - test/twitter/search_test.rb
171
+ - test/twitter_test.rb
172
+ - examples/connect.rb
173
+ - examples/friendship_existance.rb
174
+ - examples/helpers/config_store.rb
175
+ - examples/httpauth.rb
176
+ - examples/search.rb
177
+ - examples/timeline.rb
178
+ - examples/update.rb