tweetstream 1.1.5 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of tweetstream might be problematic. Click here for more details.

@@ -0,0 +1,232 @@
1
+ require 'spec_helper'
2
+
3
+ describe TweetStream::SiteStreamClient do
4
+ before do
5
+ @keys = TweetStream::Configuration::OAUTH_OPTIONS_KEYS
6
+ end
7
+
8
+ describe 'initialization' do
9
+ context 'with module configuration' do
10
+
11
+ before do
12
+ TweetStream.configure do |config|
13
+ @keys.each do |key|
14
+ config.send("#{key}=", key)
15
+ end
16
+ end
17
+ end
18
+
19
+ after do
20
+ TweetStream.reset
21
+ end
22
+
23
+ it "should inherit module configuration" do
24
+ api = TweetStream::SiteStreamClient.new('/config_uri')
25
+ @keys.each do |key|
26
+ api.send(key).should == key
27
+ end
28
+ end
29
+ end
30
+
31
+ context 'with class configuration' do
32
+ before do
33
+ @configuration = {
34
+ :consumer_key => 'CK',
35
+ :consumer_secret => 'CS',
36
+ :oauth_token => 'AT',
37
+ :oauth_token_secret => 'AS'
38
+ }
39
+ end
40
+
41
+ context "during initialization" do
42
+ it "should override module configuration" do
43
+ api = TweetStream::SiteStreamClient.new('/config_uri', @configuration)
44
+ @keys.each do |key|
45
+ api.send(key).should == @configuration[key]
46
+ end
47
+ end
48
+ end
49
+
50
+ context "after initilization" do
51
+ it "should override module configuration after initialization" do
52
+ api = TweetStream::SiteStreamClient.new('/config_uri')
53
+ @configuration.each do |key, value|
54
+ api.send("#{key}=", value)
55
+ end
56
+ @keys.each do |key|
57
+ api.send(key).should == @configuration[key]
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+
64
+ describe '#on_error' do
65
+ it 'stores the on_error proc' do
66
+ @client = TweetStream::SiteStreamClient.new('/config_uri')
67
+ @client.on_error { puts 'hi' }
68
+ @client.on_error.should be_kind_of(Proc)
69
+ end
70
+ end
71
+
72
+ describe '#info' do
73
+ context 'success' do
74
+ it 'returns the information hash' do
75
+ @config_uri = '/2b/site/c/1_1_54e345d655ee3e8df359ac033648530bfbe26c5f'
76
+ @client = TweetStream::SiteStreamClient.new(@config_uri)
77
+
78
+ stub_request(:get, "https://sitestream.twitter.com#{@config_uri}/info.json").
79
+ to_return(:status => 200, :body => fixture('info.json'), :headers => {})
80
+ stream_info = nil
81
+
82
+ EM.run_block do
83
+ @client.info { |info| stream_info = info}
84
+ end
85
+ stream_info.should be_kind_of(Hash)
86
+ end
87
+ end
88
+
89
+ context 'failure' do
90
+ it 'invokes the on_error callback' do
91
+ @config_uri = '/2b/site/c/1_1_54e345d655ee3e8df359ac033648530bfbe26c5g'
92
+ @client = TweetStream::SiteStreamClient.new(@config_uri)
93
+
94
+ stub_request(:get, "https://sitestream.twitter.com#{@config_uri}/info.json").
95
+ to_return(:status => 401, :body => '', :headers => {})
96
+ called = false
97
+
98
+ EM.run_block do
99
+ @client.on_error { called = true }
100
+ @client.info { |info| info }
101
+ end
102
+ called.should be_true
103
+ end
104
+ end
105
+ end
106
+
107
+ describe '#add_user' do
108
+ context 'success' do
109
+ it 'calls a block (if passed one)' do
110
+ @config_uri = '/2b/site/c/1_1_54e345d655ee3e8df359ac033648530bfbe26c5f'
111
+ @client = TweetStream::SiteStreamClient.new(@config_uri)
112
+
113
+ stub_request(:post, "https://sitestream.twitter.com#{@config_uri}/add_user.json").
114
+ to_return(:status => 200, :body => '', :headers => {})
115
+ called = false
116
+
117
+ EM.run_block do
118
+ @client.add_user(12345) { called = true }
119
+ end
120
+ called.should be_true
121
+ end
122
+ end
123
+
124
+ context 'failure' do
125
+ it 'invokes the on_error callback' do
126
+ @config_uri = '/2b/site/c/1_1_54e345d655ee3e8df359ac033648530bfbe26c5g'
127
+ @client = TweetStream::SiteStreamClient.new(@config_uri)
128
+
129
+ stub_request(:post, "https://sitestream.twitter.com#{@config_uri}/add_user.json").
130
+ to_return(:status => 401, :body => '', :headers => {})
131
+ called = false
132
+
133
+ EM.run_block do
134
+ @client.on_error { called = true }
135
+ @client.add_user(12345) { |info| info }
136
+ end
137
+ called.should be_true
138
+ end
139
+ end
140
+
141
+ it 'accepts an array of user_ids' do
142
+ @client = TweetStream::SiteStreamClient.new('/config_uri')
143
+ conn = stub('Connection')
144
+ conn.should_receive(:post).
145
+ with(:path => '/config_uri/add_user.json', :body => { 'user_id' => '1234,5678' }).
146
+ and_return(FakeHttp.new)
147
+ @client.stub(:connection) { conn }
148
+ @client.add_user(['1234','5678'])
149
+ end
150
+ end
151
+
152
+ describe '#remove_user' do
153
+ context 'success' do
154
+ it 'calls a block (if passed one)' do
155
+ @config_uri = '/2b/site/c/1_1_54e345d655ee3e8df359ac033648530bfbe26c5f'
156
+ @client = TweetStream::SiteStreamClient.new(@config_uri)
157
+
158
+ stub_request(:post, "https://sitestream.twitter.com#{@config_uri}/remove_user.json").
159
+ to_return(:status => 200, :body => '', :headers => {})
160
+ called = false
161
+
162
+ EM.run_block do
163
+ @client.remove_user(12345) { called = true }
164
+ end
165
+ called.should be_true
166
+ end
167
+ end
168
+
169
+ context 'failure' do
170
+ it 'invokes the on_error callback' do
171
+ @config_uri = '/2b/site/c/1_1_54e345d655ee3e8df359ac033648530bfbe26c5g'
172
+ @client = TweetStream::SiteStreamClient.new(@config_uri)
173
+
174
+ stub_request(:post, "https://sitestream.twitter.com#{@config_uri}/remove_user.json").
175
+ to_return(:status => 401, :body => '', :headers => {})
176
+ called = false
177
+
178
+ EM.run_block do
179
+ @client.on_error { called = true }
180
+ @client.remove_user(12345) { |info| info }
181
+ end
182
+ called.should be_true
183
+ end
184
+ end
185
+
186
+ it 'accepts an array of user_ids' do
187
+ @client = TweetStream::SiteStreamClient.new('/config_uri')
188
+ conn = stub('Connection')
189
+ conn.should_receive(:post).
190
+ with(:path => '/config_uri/remove_user.json', :body => { 'user_id' => '1234,5678' }).
191
+ and_return(FakeHttp.new)
192
+ @client.stub(:connection) { conn }
193
+ @client.remove_user(['1234','5678'])
194
+ end
195
+ end
196
+
197
+ describe '#friends_ids' do
198
+ context 'success' do
199
+ it 'returns the information hash' do
200
+ @config_uri = '/2b/site/c/1_1_54e345d655ee3e8df359ac033648530bfbe26c5f'
201
+ @client = TweetStream::SiteStreamClient.new(@config_uri)
202
+
203
+ stub_request(:post, "https://sitestream.twitter.com#{@config_uri}/friends/ids.json").
204
+ to_return(:status => 200, :body => fixture('ids.json'), :headers => {})
205
+ stream_info = nil
206
+
207
+ EM.run_block do
208
+ @client.friends_ids(12345) { |info| stream_info = info }
209
+ end
210
+ stream_info.should be_kind_of(Hash)
211
+ end
212
+ end
213
+
214
+ context 'failure' do
215
+ it 'invokes the on_error callback' do
216
+ @config_uri = '/2b/site/c/1_1_54e345d655ee3e8df359ac033648530bfbe26c5g'
217
+ @client = TweetStream::SiteStreamClient.new(@config_uri)
218
+
219
+ stub_request(:post, "https://sitestream.twitter.com#{@config_uri}/friends/ids.json").
220
+ to_return(:status => 401, :body => '', :headers => {})
221
+ called = false
222
+
223
+ EM.run_block do
224
+ @client.on_error { called = true }
225
+ @client.friends_ids(12345) { |info| info }
226
+ end
227
+ called.should be_true
228
+ end
229
+ end
230
+ end
231
+
232
+ end
@@ -7,23 +7,24 @@ describe TweetStream do
7
7
 
8
8
  context "when delegating to a client" do
9
9
  before do
10
- @stream = stub("Twitter::JSONStream",
10
+ @stream = stub("EM::Twitter::Client",
11
11
  :connect => true,
12
12
  :unbind => true,
13
13
  :each_item => true,
14
14
  :on_error => true,
15
15
  :on_max_reconnects => true,
16
16
  :on_reconnect => true,
17
- :connection_completed => true
17
+ :connection_completed => true,
18
+ :on_no_data_received => true
18
19
  )
19
20
  EM.stub!(:run).and_yield
20
- Twitter::JSONStream.stub!(:connect).and_return(@stream)
21
+ EM::Twitter::Client.stub!(:connect).and_return(@stream)
21
22
  end
22
23
 
23
24
  it "should return the same results as a client" do
24
25
  MultiJson.should_receive(:decode).and_return({})
25
- @stream.should_receive(:each_item).and_yield(sample_tweets[0].to_json)
26
- TweetStream.track('abc','def').should == TweetStream::Client.new.track('abc','def')
26
+ @stream.should_receive(:each).and_yield(sample_tweets[0].to_json)
27
+ TweetStream.track('abc','def')
27
28
  end
28
29
  end
29
30
 
@@ -39,19 +40,6 @@ describe TweetStream do
39
40
  end
40
41
  end
41
42
 
42
- describe ".parser" do
43
- it "should return the default parser" do
44
- TweetStream.parser.should == TweetStream::Configuration::DEFAULT_PARSER
45
- end
46
- end
47
-
48
- describe ".parser=" do
49
- it "should set the adapter" do
50
- TweetStream.parser = :yajl
51
- TweetStream.parser.should == :yajl
52
- end
53
- end
54
-
55
43
  describe ".username" do
56
44
  it "should return the default username" do
57
45
  TweetStream.username.should == TweetStream::Configuration::DEFAULT_USERNAME
@@ -115,4 +103,16 @@ describe TweetStream do
115
103
  end
116
104
  end
117
105
 
106
+ describe '.options' do
107
+ it 'returns the configuration as a hash' do
108
+ TweetStream.options.should be_kind_of(Hash)
109
+ end
110
+ end
111
+
112
+ describe '.oauth_options' do
113
+ it 'returns the oauth configuration as a hash' do
114
+ TweetStream.oauth_options.should be_kind_of(Hash)
115
+ end
116
+ end
117
+
118
118
  end
data/tweetstream.gemspec CHANGED
@@ -11,18 +11,22 @@ Gem::Specification.new do |s|
11
11
  s.summary = %q{TweetStream is a simple wrapper for consuming the Twitter Streaming API.}
12
12
  s.homepage = 'http://github.com/intridea/tweetstream'
13
13
 
14
- s.add_dependency 'twitter-stream', ['>= 0.1.14', '< 1']
14
+ s.add_dependency 'em-twitter', '~> 0.1'
15
+ s.add_dependency 'twitter', '~> 2.2'
15
16
  s.add_dependency 'daemons', '~> 1.1'
16
17
  s.add_dependency 'multi_json', '~> 1.3'
18
+ s.add_dependency 'em-http-request', '~> 1.0.2'
17
19
 
20
+ s.add_development_dependency 'guard-rspec'
21
+ s.add_development_dependency 'json'
22
+ s.add_development_dependency 'pry'
18
23
  s.add_development_dependency 'rake'
19
- s.add_development_dependency 'simplecov'
20
- s.add_development_dependency 'yard'
21
24
  s.add_development_dependency 'rdiscount'
22
25
  s.add_development_dependency 'rspec'
26
+ s.add_development_dependency 'simplecov'
27
+ s.add_development_dependency 'webmock'
23
28
  s.add_development_dependency 'yajl-ruby'
24
- s.add_development_dependency 'json'
25
- s.add_development_dependency 'guard-rspec'
29
+ s.add_development_dependency 'yard'
26
30
 
27
31
  s.files = `git ls-files`.split("\n")
28
32
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tweetstream
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.5
4
+ version: 2.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,49 +10,44 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-04-30 00:00:00.000000000 Z
13
+ date: 2012-06-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: twitter-stream
17
- requirement: !ruby/object:Gem::Requirement
16
+ name: em-twitter
17
+ requirement: &70257167536020 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
22
- version: 0.1.14
23
- - - <
20
+ - - ~>
24
21
  - !ruby/object:Gem::Version
25
- version: '1'
22
+ version: '0.1'
26
23
  type: :runtime
27
24
  prerelease: false
28
- version_requirements: !ruby/object:Gem::Requirement
29
- none: false
30
- requirements:
31
- - - ! '>='
32
- - !ruby/object:Gem::Version
33
- version: 0.1.14
34
- - - <
35
- - !ruby/object:Gem::Version
36
- version: '1'
25
+ version_requirements: *70257167536020
37
26
  - !ruby/object:Gem::Dependency
38
- name: daemons
39
- requirement: !ruby/object:Gem::Requirement
27
+ name: twitter
28
+ requirement: &70257167535420 !ruby/object:Gem::Requirement
40
29
  none: false
41
30
  requirements:
42
31
  - - ~>
43
32
  - !ruby/object:Gem::Version
44
- version: '1.1'
33
+ version: '2.2'
45
34
  type: :runtime
46
35
  prerelease: false
47
- version_requirements: !ruby/object:Gem::Requirement
36
+ version_requirements: *70257167535420
37
+ - !ruby/object:Gem::Dependency
38
+ name: daemons
39
+ requirement: &70257167534760 !ruby/object:Gem::Requirement
48
40
  none: false
49
41
  requirements:
50
42
  - - ~>
51
43
  - !ruby/object:Gem::Version
52
44
  version: '1.1'
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: *70257167534760
53
48
  - !ruby/object:Gem::Dependency
54
49
  name: multi_json
55
- requirement: !ruby/object:Gem::Requirement
50
+ requirement: &70257167534140 !ruby/object:Gem::Requirement
56
51
  none: false
57
52
  requirements:
58
53
  - - ~>
@@ -60,15 +55,21 @@ dependencies:
60
55
  version: '1.3'
61
56
  type: :runtime
62
57
  prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
58
+ version_requirements: *70257167534140
59
+ - !ruby/object:Gem::Dependency
60
+ name: em-http-request
61
+ requirement: &70257167533360 !ruby/object:Gem::Requirement
64
62
  none: false
65
63
  requirements:
66
64
  - - ~>
67
65
  - !ruby/object:Gem::Version
68
- version: '1.3'
66
+ version: 1.0.2
67
+ type: :runtime
68
+ prerelease: false
69
+ version_requirements: *70257167533360
69
70
  - !ruby/object:Gem::Dependency
70
- name: rake
71
- requirement: !ruby/object:Gem::Requirement
71
+ name: guard-rspec
72
+ requirement: &70257167532700 !ruby/object:Gem::Requirement
72
73
  none: false
73
74
  requirements:
74
75
  - - ! '>='
@@ -76,15 +77,10 @@ dependencies:
76
77
  version: '0'
77
78
  type: :development
78
79
  prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
80
- none: false
81
- requirements:
82
- - - ! '>='
83
- - !ruby/object:Gem::Version
84
- version: '0'
80
+ version_requirements: *70257167532700
85
81
  - !ruby/object:Gem::Dependency
86
- name: simplecov
87
- requirement: !ruby/object:Gem::Requirement
82
+ name: json
83
+ requirement: &70257167538780 !ruby/object:Gem::Requirement
88
84
  none: false
89
85
  requirements:
90
86
  - - ! '>='
@@ -92,15 +88,10 @@ dependencies:
92
88
  version: '0'
93
89
  type: :development
94
90
  prerelease: false
95
- version_requirements: !ruby/object:Gem::Requirement
96
- none: false
97
- requirements:
98
- - - ! '>='
99
- - !ruby/object:Gem::Version
100
- version: '0'
91
+ version_requirements: *70257167538780
101
92
  - !ruby/object:Gem::Dependency
102
- name: yard
103
- requirement: !ruby/object:Gem::Requirement
93
+ name: pry
94
+ requirement: &70257167515140 !ruby/object:Gem::Requirement
104
95
  none: false
105
96
  requirements:
106
97
  - - ! '>='
@@ -108,15 +99,21 @@ dependencies:
108
99
  version: '0'
109
100
  type: :development
110
101
  prerelease: false
111
- version_requirements: !ruby/object:Gem::Requirement
102
+ version_requirements: *70257167515140
103
+ - !ruby/object:Gem::Dependency
104
+ name: rake
105
+ requirement: &70257167514640 !ruby/object:Gem::Requirement
112
106
  none: false
113
107
  requirements:
114
108
  - - ! '>='
115
109
  - !ruby/object:Gem::Version
116
110
  version: '0'
111
+ type: :development
112
+ prerelease: false
113
+ version_requirements: *70257167514640
117
114
  - !ruby/object:Gem::Dependency
118
115
  name: rdiscount
119
- requirement: !ruby/object:Gem::Requirement
116
+ requirement: &70257167514040 !ruby/object:Gem::Requirement
120
117
  none: false
121
118
  requirements:
122
119
  - - ! '>='
@@ -124,15 +121,10 @@ dependencies:
124
121
  version: '0'
125
122
  type: :development
126
123
  prerelease: false
127
- version_requirements: !ruby/object:Gem::Requirement
128
- none: false
129
- requirements:
130
- - - ! '>='
131
- - !ruby/object:Gem::Version
132
- version: '0'
124
+ version_requirements: *70257167514040
133
125
  - !ruby/object:Gem::Dependency
134
126
  name: rspec
135
- requirement: !ruby/object:Gem::Requirement
127
+ requirement: &70257167513580 !ruby/object:Gem::Requirement
136
128
  none: false
137
129
  requirements:
138
130
  - - ! '>='
@@ -140,15 +132,10 @@ dependencies:
140
132
  version: '0'
141
133
  type: :development
142
134
  prerelease: false
143
- version_requirements: !ruby/object:Gem::Requirement
144
- none: false
145
- requirements:
146
- - - ! '>='
147
- - !ruby/object:Gem::Version
148
- version: '0'
135
+ version_requirements: *70257167513580
149
136
  - !ruby/object:Gem::Dependency
150
- name: yajl-ruby
151
- requirement: !ruby/object:Gem::Requirement
137
+ name: simplecov
138
+ requirement: &70257167513160 !ruby/object:Gem::Requirement
152
139
  none: false
153
140
  requirements:
154
141
  - - ! '>='
@@ -156,15 +143,10 @@ dependencies:
156
143
  version: '0'
157
144
  type: :development
158
145
  prerelease: false
159
- version_requirements: !ruby/object:Gem::Requirement
160
- none: false
161
- requirements:
162
- - - ! '>='
163
- - !ruby/object:Gem::Version
164
- version: '0'
146
+ version_requirements: *70257167513160
165
147
  - !ruby/object:Gem::Dependency
166
- name: json
167
- requirement: !ruby/object:Gem::Requirement
148
+ name: webmock
149
+ requirement: &70257167512660 !ruby/object:Gem::Requirement
168
150
  none: false
169
151
  requirements:
170
152
  - - ! '>='
@@ -172,15 +154,10 @@ dependencies:
172
154
  version: '0'
173
155
  type: :development
174
156
  prerelease: false
175
- version_requirements: !ruby/object:Gem::Requirement
176
- none: false
177
- requirements:
178
- - - ! '>='
179
- - !ruby/object:Gem::Version
180
- version: '0'
157
+ version_requirements: *70257167512660
181
158
  - !ruby/object:Gem::Dependency
182
- name: guard-rspec
183
- requirement: !ruby/object:Gem::Requirement
159
+ name: yajl-ruby
160
+ requirement: &70257167512080 !ruby/object:Gem::Requirement
184
161
  none: false
185
162
  requirements:
186
163
  - - ! '>='
@@ -188,12 +165,18 @@ dependencies:
188
165
  version: '0'
189
166
  type: :development
190
167
  prerelease: false
191
- version_requirements: !ruby/object:Gem::Requirement
168
+ version_requirements: *70257167512080
169
+ - !ruby/object:Gem::Dependency
170
+ name: yard
171
+ requirement: &70257167511540 !ruby/object:Gem::Requirement
192
172
  none: false
193
173
  requirements:
194
174
  - - ! '>='
195
175
  - !ruby/object:Gem::Version
196
176
  version: '0'
177
+ type: :development
178
+ prerelease: false
179
+ version_requirements: *70257167511540
197
180
  description: TweetStream allows you to easily consume the Twitter Streaming API utilizing
198
181
  the YAJL Ruby gem.
199
182
  email:
@@ -217,26 +200,23 @@ files:
217
200
  - Rakefile
218
201
  - examples/growl_daemon.rb
219
202
  - examples/oauth.rb
203
+ - examples/sitestream.rb
220
204
  - examples/userstream.rb
221
205
  - lib/tweetstream.rb
222
206
  - lib/tweetstream/client.rb
223
207
  - lib/tweetstream/configuration.rb
224
208
  - lib/tweetstream/daemon.rb
225
- - lib/tweetstream/direct_message.rb
226
209
  - lib/tweetstream/error.rb
227
- - lib/tweetstream/hash.rb
228
- - lib/tweetstream/status.rb
229
- - lib/tweetstream/user.rb
210
+ - lib/tweetstream/site_stream_client.rb
230
211
  - lib/tweetstream/version.rb
231
212
  - spec/data/direct_messages.json
232
213
  - spec/data/statuses.json
214
+ - spec/fixtures/ids.json
215
+ - spec/fixtures/info.json
233
216
  - spec/spec_helper.rb
234
217
  - spec/tweetstream/client_spec.rb
235
218
  - spec/tweetstream/daemon_spec.rb
236
- - spec/tweetstream/direct_message_spec.rb
237
- - spec/tweetstream/hash_spec.rb
238
- - spec/tweetstream/parser_spec.rb
239
- - spec/tweetstream/status_spec.rb
219
+ - spec/tweetstream/site_stream_client_spec.rb
240
220
  - spec/tweetstream_spec.rb
241
221
  - tweetstream.gemspec
242
222
  homepage: http://github.com/intridea/tweetstream
@@ -259,19 +239,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
259
239
  version: '0'
260
240
  requirements: []
261
241
  rubyforge_project:
262
- rubygems_version: 1.8.24
242
+ rubygems_version: 1.8.16
263
243
  signing_key:
264
244
  specification_version: 3
265
245
  summary: TweetStream is a simple wrapper for consuming the Twitter Streaming API.
266
246
  test_files:
267
247
  - spec/data/direct_messages.json
268
248
  - spec/data/statuses.json
249
+ - spec/fixtures/ids.json
250
+ - spec/fixtures/info.json
269
251
  - spec/spec_helper.rb
270
252
  - spec/tweetstream/client_spec.rb
271
253
  - spec/tweetstream/daemon_spec.rb
272
- - spec/tweetstream/direct_message_spec.rb
273
- - spec/tweetstream/hash_spec.rb
274
- - spec/tweetstream/parser_spec.rb
275
- - spec/tweetstream/status_spec.rb
254
+ - spec/tweetstream/site_stream_client_spec.rb
276
255
  - spec/tweetstream_spec.rb
277
256
  has_rdoc: