tweetstream 1.0.5 → 1.1.0.rc1
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.
- data/.document +5 -0
- data/.gemtest +0 -0
- data/.gitignore +13 -0
- data/.rspec +2 -0
- data/.yardopts +4 -0
- data/Gemfile +2 -0
- data/Guardfile +10 -0
- data/{LICENSE → LICENSE.md} +1 -1
- data/README.md +223 -0
- data/{RELEASE_NOTES.rdoc → RELEASE_NOTES.md} +2 -1
- data/Rakefile +13 -54
- data/examples/oauth.rb +17 -0
- data/lib/tweetstream.rb +21 -0
- data/lib/tweetstream/client.rb +137 -79
- data/lib/tweetstream/configuration.rb +82 -0
- data/lib/tweetstream/daemon.rb +6 -2
- data/lib/tweetstream/version.rb +3 -0
- data/spec/spec_helper.rb +8 -7
- data/spec/tweetstream/client_spec.rb +124 -64
- data/spec/tweetstream/parser_spec.rb +25 -22
- data/spec/tweetstream_spec.rb +106 -0
- data/tweetstream.gemspec +35 -0
- metadata +131 -36
- data/Gemfile.lock +0 -56
- data/README.rdoc +0 -162
- data/VERSION +0 -1
- data/lib/tweetstream/parsers/active_support.rb +0 -11
- data/lib/tweetstream/parsers/json_gem.rb +0 -11
- data/lib/tweetstream/parsers/json_pure.rb +0 -11
- data/lib/tweetstream/parsers/yajl.rb +0 -11
- data/spec/spec.opts +0 -2
@@ -1,39 +1,42 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../spec_helper'
|
2
2
|
|
3
|
-
describe 'TweetStream
|
4
|
-
|
5
|
-
TweetStream
|
3
|
+
describe 'TweetStream MultiJson Support' do
|
4
|
+
after do
|
5
|
+
TweetStream.reset
|
6
6
|
end
|
7
|
-
|
8
|
-
|
7
|
+
|
8
|
+
it "should default to the MultiJson default's paser" do
|
9
|
+
TweetStream::Client.new.json_parser.engine.to_s.should == MultiJson.engine.to_s
|
10
|
+
end
|
11
|
+
|
12
|
+
[:json_gem, :yajl, :json_pure].each do |engine|
|
9
13
|
describe "#{engine} parsing" do
|
10
14
|
before do
|
11
|
-
|
12
|
-
|
15
|
+
TweetStream.configure do |config|
|
16
|
+
config.username = 'test'
|
17
|
+
config.password = 'fake'
|
18
|
+
config.parser = engine
|
19
|
+
end
|
20
|
+
@client = TweetStream::Client.new
|
21
|
+
@class_name = "MultiJson::Engines::#{engine.to_s.split('_').map{|s| s.capitalize}.join('')}"
|
13
22
|
end
|
14
|
-
|
23
|
+
|
15
24
|
it 'should set the parser to the appropriate class' do
|
16
|
-
@client.
|
25
|
+
@client.json_parser.engine.to_s == @class_name
|
17
26
|
end
|
18
|
-
|
27
|
+
|
19
28
|
it 'should be settable via client.parser=' do
|
20
|
-
@client.parser = nil
|
21
|
-
@client.parser.should be_nil
|
22
29
|
@client.parser = engine
|
23
|
-
@client.
|
30
|
+
@client.json_parser.engine.to_s.should == @class_name
|
24
31
|
end
|
25
32
|
end
|
26
33
|
end
|
27
|
-
|
28
|
-
class FakeParser
|
29
|
-
|
30
|
-
{}
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
+
|
35
|
+
class FakeParser; end
|
36
|
+
|
34
37
|
it 'should be settable to a class' do
|
35
|
-
@client = TweetStream::Client.new
|
38
|
+
@client = TweetStream::Client.new
|
36
39
|
@client.parser = FakeParser
|
37
|
-
@client.
|
40
|
+
@client.json_parser.engine.should == FakeParser
|
38
41
|
end
|
39
42
|
end
|
data/spec/tweetstream_spec.rb
CHANGED
@@ -1,5 +1,111 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
2
|
|
3
3
|
describe TweetStream do
|
4
|
+
after do
|
5
|
+
TweetStream.reset
|
6
|
+
end
|
7
|
+
|
8
|
+
context "when delegating to a client" do
|
9
|
+
before do
|
10
|
+
@stream = stub("Twitter::JSONStream",
|
11
|
+
:connect => true,
|
12
|
+
:unbind => true,
|
13
|
+
:each_item => true,
|
14
|
+
:on_error => true,
|
15
|
+
:on_max_reconnects => true,
|
16
|
+
:connection_completed => true
|
17
|
+
)
|
18
|
+
EM.stub!(:run).and_yield
|
19
|
+
Twitter::JSONStream.stub!(:connect).and_return(@stream)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should return the same results as a client" do
|
23
|
+
MultiJson.should_receive(:decode).and_return({})
|
24
|
+
@stream.should_receive(:each_item).and_yield(sample_tweets[0].to_json)
|
25
|
+
TweetStream.track('abc','def').should == TweetStream::Client.new.track('abc','def')
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe ".client" do
|
30
|
+
it "should be a TweetStream::Client" do
|
31
|
+
TweetStream.client.should be_a TweetStream::Client
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe ".parser" do
|
36
|
+
it "should return the default parser" do
|
37
|
+
TweetStream.parser.should == TweetStream::Configuration::DEFAULT_PARSER
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe ".parser=" do
|
42
|
+
it "should set the adapter" do
|
43
|
+
TweetStream.parser = :yajl
|
44
|
+
TweetStream.parser.should == :yajl
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe ".username" do
|
49
|
+
it "should return the default username" do
|
50
|
+
TweetStream.username.should == TweetStream::Configuration::DEFAULT_USERNAME
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe ".username=" do
|
55
|
+
it "should set the username" do
|
56
|
+
TweetStream.username = 'jack'
|
57
|
+
TweetStream.username.should == 'jack'
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe ".password" do
|
62
|
+
it "should return the default password" do
|
63
|
+
TweetStream.password.should == TweetStream::Configuration::DEFAULT_PASSWORD
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe ".password=" do
|
68
|
+
it "should set the password" do
|
69
|
+
TweetStream.password = 'passw0rd'
|
70
|
+
TweetStream.password.should == 'passw0rd'
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe ".auth_method" do
|
75
|
+
it "shold return the default auth method" do
|
76
|
+
TweetStream.auth_method.should == TweetStream::Configuration::DEFAULT_AUTH_METHOD
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
describe ".auth_method=" do
|
81
|
+
it "should set the auth method" do
|
82
|
+
TweetStream.auth_method = :basic
|
83
|
+
TweetStream.auth_method.should == :basic
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe ".user_agent" do
|
88
|
+
it "should return the default user agent" do
|
89
|
+
TweetStream.user_agent.should == TweetStream::Configuration::DEFAULT_USER_AGENT
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
describe ".user_agent=" do
|
94
|
+
it "should set the user_agent" do
|
95
|
+
TweetStream.user_agent = 'Custom User Agent'
|
96
|
+
TweetStream.user_agent.should == 'Custom User Agent'
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
describe ".configure" do
|
101
|
+
TweetStream::Configuration::VALID_OPTIONS_KEYS.each do |key|
|
102
|
+
it "should set the #{key}" do
|
103
|
+
TweetStream.configure do |config|
|
104
|
+
config.send("#{key}=", key)
|
105
|
+
TweetStream.send(key).should == key
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
4
110
|
|
5
111
|
end
|
data/tweetstream.gemspec
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "tweetstream/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = 'tweetstream'
|
7
|
+
s.version = TweetStream::VERSION
|
8
|
+
|
9
|
+
s.authors = ['Michael Bleigh']
|
10
|
+
s.email = ['michael@intridea.com']
|
11
|
+
s.description = %q{TweetStream allows you to easily consume the Twitter Streaming API utilizing the YAJL Ruby gem.}
|
12
|
+
s.summary = %q{TweetStream is a simple wrapper for consuming the Twitter Streaming API.}
|
13
|
+
s.homepage = 'http://github.com/intridea/tweetstream'
|
14
|
+
|
15
|
+
s.platform = Gem::Platform::RUBY
|
16
|
+
s.rubygems_version = %q{1.3.6}
|
17
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.3.6") if s.respond_to? :required_rubygems_version=
|
18
|
+
|
19
|
+
s.add_dependency 'twitter-stream', '~> 0.1.14'
|
20
|
+
s.add_dependency 'daemons', '~> 1.1.2'
|
21
|
+
s.add_dependency 'multi_json', '~> 1.0.3'
|
22
|
+
s.add_development_dependency 'rake', '~> 0.9'
|
23
|
+
s.add_development_dependency 'simplecov', '~> 0.4'
|
24
|
+
s.add_development_dependency 'yard', '~> 0.7'
|
25
|
+
s.add_development_dependency 'rdiscount', '~> 1.6'
|
26
|
+
s.add_development_dependency 'rspec', '~> 2.6.0'
|
27
|
+
s.add_development_dependency 'yajl-ruby', '~> 1.0'
|
28
|
+
s.add_development_dependency 'json', '~> 1.5.1'
|
29
|
+
s.add_development_dependency 'guard-rspec', '~> 0.4.3'
|
30
|
+
|
31
|
+
s.files = `git ls-files`.split("\n")
|
32
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
33
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
34
|
+
s.require_paths = ["lib"]
|
35
|
+
end
|
metadata
CHANGED
@@ -1,86 +1,174 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tweetstream
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.0.rc1
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Michael Bleigh
|
9
|
-
- Steve Agalloco
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2011-09-
|
12
|
+
date: 2011-09-19 00:00:00.000000000Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
17
|
-
requirement: &
|
15
|
+
name: twitter-stream
|
16
|
+
requirement: &2152826800 !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
18
|
requirements:
|
20
|
-
- -
|
19
|
+
- - ~>
|
21
20
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
23
|
-
type: :
|
21
|
+
version: 0.1.14
|
22
|
+
type: :runtime
|
24
23
|
prerelease: false
|
25
|
-
version_requirements: *
|
24
|
+
version_requirements: *2152826800
|
26
25
|
- !ruby/object:Gem::Dependency
|
27
|
-
name:
|
28
|
-
requirement: &
|
26
|
+
name: daemons
|
27
|
+
requirement: &2152826340 !ruby/object:Gem::Requirement
|
29
28
|
none: false
|
30
29
|
requirements:
|
31
|
-
- -
|
30
|
+
- - ~>
|
32
31
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
32
|
+
version: 1.1.2
|
34
33
|
type: :runtime
|
35
34
|
prerelease: false
|
36
|
-
version_requirements: *
|
35
|
+
version_requirements: *2152826340
|
37
36
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
39
|
-
requirement: &
|
37
|
+
name: multi_json
|
38
|
+
requirement: &2152858380 !ruby/object:Gem::Requirement
|
40
39
|
none: false
|
41
40
|
requirements:
|
42
|
-
- -
|
41
|
+
- - ~>
|
43
42
|
- !ruby/object:Gem::Version
|
44
|
-
version:
|
43
|
+
version: 1.0.3
|
45
44
|
type: :runtime
|
46
45
|
prerelease: false
|
47
|
-
version_requirements: *
|
46
|
+
version_requirements: *2152858380
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rake
|
49
|
+
requirement: &2152857920 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.9'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *2152857920
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: simplecov
|
60
|
+
requirement: &2152857460 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ~>
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0.4'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *2152857460
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: yard
|
71
|
+
requirement: &2152857000 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0.7'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *2152857000
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: rdiscount
|
82
|
+
requirement: &2152856540 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ~>
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '1.6'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *2152856540
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: rspec
|
93
|
+
requirement: &2152856080 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ~>
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: 2.6.0
|
99
|
+
type: :development
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *2152856080
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: yajl-ruby
|
104
|
+
requirement: &2152855620 !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '1.0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: *2152855620
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: json
|
115
|
+
requirement: &2152855160 !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
117
|
+
requirements:
|
118
|
+
- - ~>
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: 1.5.1
|
121
|
+
type: :development
|
122
|
+
prerelease: false
|
123
|
+
version_requirements: *2152855160
|
124
|
+
- !ruby/object:Gem::Dependency
|
125
|
+
name: guard-rspec
|
126
|
+
requirement: &2152854700 !ruby/object:Gem::Requirement
|
127
|
+
none: false
|
128
|
+
requirements:
|
129
|
+
- - ~>
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 0.4.3
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: *2152854700
|
48
135
|
description: TweetStream allows you to easily consume the Twitter Streaming API utilizing
|
49
136
|
the YAJL Ruby gem.
|
50
137
|
email:
|
51
138
|
- michael@intridea.com
|
52
|
-
- steve.agalloco@gmail.com
|
53
139
|
executables: []
|
54
140
|
extensions: []
|
55
|
-
extra_rdoc_files:
|
56
|
-
- LICENSE
|
57
|
-
- README.rdoc
|
141
|
+
extra_rdoc_files: []
|
58
142
|
files:
|
59
|
-
-
|
60
|
-
-
|
61
|
-
-
|
62
|
-
-
|
143
|
+
- .document
|
144
|
+
- .gemtest
|
145
|
+
- .gitignore
|
146
|
+
- .rspec
|
147
|
+
- .yardopts
|
148
|
+
- Gemfile
|
149
|
+
- Guardfile
|
150
|
+
- LICENSE.md
|
151
|
+
- README.md
|
152
|
+
- RELEASE_NOTES.md
|
63
153
|
- Rakefile
|
64
|
-
- VERSION
|
65
154
|
- examples/growl_daemon.rb
|
155
|
+
- examples/oauth.rb
|
66
156
|
- lib/tweetstream.rb
|
67
157
|
- lib/tweetstream/client.rb
|
158
|
+
- lib/tweetstream/configuration.rb
|
68
159
|
- lib/tweetstream/daemon.rb
|
69
160
|
- lib/tweetstream/hash.rb
|
70
|
-
- lib/tweetstream/parsers/active_support.rb
|
71
|
-
- lib/tweetstream/parsers/json_gem.rb
|
72
|
-
- lib/tweetstream/parsers/json_pure.rb
|
73
|
-
- lib/tweetstream/parsers/yajl.rb
|
74
161
|
- lib/tweetstream/status.rb
|
75
162
|
- lib/tweetstream/user.rb
|
163
|
+
- lib/tweetstream/version.rb
|
76
164
|
- spec/data/statuses.json
|
77
|
-
- spec/spec.opts
|
78
165
|
- spec/spec_helper.rb
|
79
166
|
- spec/tweetstream/client_spec.rb
|
80
167
|
- spec/tweetstream/hash_spec.rb
|
81
168
|
- spec/tweetstream/parser_spec.rb
|
82
169
|
- spec/tweetstream/status_spec.rb
|
83
170
|
- spec/tweetstream_spec.rb
|
171
|
+
- tweetstream.gemspec
|
84
172
|
homepage: http://github.com/intridea/tweetstream
|
85
173
|
licenses: []
|
86
174
|
post_install_message:
|
@@ -98,11 +186,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
186
|
requirements:
|
99
187
|
- - ! '>='
|
100
188
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
189
|
+
version: 1.3.6
|
102
190
|
requirements: []
|
103
191
|
rubyforge_project:
|
104
192
|
rubygems_version: 1.8.6
|
105
193
|
signing_key:
|
106
194
|
specification_version: 3
|
107
195
|
summary: TweetStream is a simple wrapper for consuming the Twitter Streaming API.
|
108
|
-
test_files:
|
196
|
+
test_files:
|
197
|
+
- spec/data/statuses.json
|
198
|
+
- spec/spec_helper.rb
|
199
|
+
- spec/tweetstream/client_spec.rb
|
200
|
+
- spec/tweetstream/hash_spec.rb
|
201
|
+
- spec/tweetstream/parser_spec.rb
|
202
|
+
- spec/tweetstream/status_spec.rb
|
203
|
+
- spec/tweetstream_spec.rb
|
data/Gemfile.lock
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
tweetstream (1.1.0.rc2)
|
5
|
-
daemons (~> 1.1.2)
|
6
|
-
multi_json (~> 1.0.3)
|
7
|
-
twitter-stream (~> 0.1.14)
|
8
|
-
|
9
|
-
GEM
|
10
|
-
remote: http://rubygems.org/
|
11
|
-
specs:
|
12
|
-
daemons (1.1.4)
|
13
|
-
diff-lcs (1.1.2)
|
14
|
-
eventmachine (0.12.10)
|
15
|
-
guard (0.7.0)
|
16
|
-
thor (~> 0.14.6)
|
17
|
-
guard-rspec (0.4.5)
|
18
|
-
guard (>= 0.4.0)
|
19
|
-
http_parser.rb (0.5.2)
|
20
|
-
json (1.5.1)
|
21
|
-
multi_json (1.0.3)
|
22
|
-
rake (0.9.2)
|
23
|
-
rdiscount (1.6.8)
|
24
|
-
rspec (2.6.0)
|
25
|
-
rspec-core (~> 2.6.0)
|
26
|
-
rspec-expectations (~> 2.6.0)
|
27
|
-
rspec-mocks (~> 2.6.0)
|
28
|
-
rspec-core (2.6.4)
|
29
|
-
rspec-expectations (2.6.0)
|
30
|
-
diff-lcs (~> 1.1.2)
|
31
|
-
rspec-mocks (2.6.0)
|
32
|
-
simple_oauth (0.1.5)
|
33
|
-
simplecov (0.4.1)
|
34
|
-
simplecov-html (~> 0.4.3)
|
35
|
-
simplecov-html (0.4.3)
|
36
|
-
thor (0.14.6)
|
37
|
-
twitter-stream (0.1.14)
|
38
|
-
eventmachine (>= 0.12.8)
|
39
|
-
http_parser.rb (~> 0.5.1)
|
40
|
-
simple_oauth (~> 0.1.4)
|
41
|
-
yajl-ruby (1.0.0)
|
42
|
-
yard (0.7.1)
|
43
|
-
|
44
|
-
PLATFORMS
|
45
|
-
ruby
|
46
|
-
|
47
|
-
DEPENDENCIES
|
48
|
-
guard-rspec (~> 0.4.3)
|
49
|
-
json (~> 1.5.1)
|
50
|
-
rake (~> 0.9)
|
51
|
-
rdiscount (~> 1.6)
|
52
|
-
rspec (~> 2.6.0)
|
53
|
-
simplecov (~> 0.4)
|
54
|
-
tweetstream!
|
55
|
-
yajl-ruby (~> 1.0)
|
56
|
-
yard (~> 0.7)
|