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.

@@ -1,39 +1,42 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
- describe 'TweetStream JSON Parsers' do
4
- it 'should default to the JSON Gem' do
5
- TweetStream::Client.new('test','fake').parser.should == TweetStream::Parsers::JsonGem
3
+ describe 'TweetStream MultiJson Support' do
4
+ after do
5
+ TweetStream.reset
6
6
  end
7
-
8
- [:json_gem, :yajl, :active_support, :json_pure].each do |engine|
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
- @client = TweetStream::Client.new('test','fake',engine)
12
- @class_name = "TweetStream::Parsers::#{engine.to_s.split('_').map{|s| s.capitalize}.join('')}"
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.parser.to_s == @class_name
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.parser.to_s.should == @class_name
30
+ @client.json_parser.engine.to_s.should == @class_name
24
31
  end
25
32
  end
26
33
  end
27
-
28
- class FakeParser
29
- def self.decode(text)
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('abc','def')
38
+ @client = TweetStream::Client.new
36
39
  @client.parser = FakeParser
37
- @client.parser.should == FakeParser
40
+ @client.json_parser.engine.should == FakeParser
38
41
  end
39
42
  end
@@ -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
@@ -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
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-29 00:00:00.000000000Z
12
+ date: 2011-09-19 00:00:00.000000000Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
- name: rspec
17
- requirement: &2156452420 !ruby/object:Gem::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: '0'
23
- type: :development
21
+ version: 0.1.14
22
+ type: :runtime
24
23
  prerelease: false
25
- version_requirements: *2156452420
24
+ version_requirements: *2152826800
26
25
  - !ruby/object:Gem::Dependency
27
- name: twitter-stream
28
- requirement: &2156451820 !ruby/object:Gem::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: '0'
32
+ version: 1.1.2
34
33
  type: :runtime
35
34
  prerelease: false
36
- version_requirements: *2156451820
35
+ version_requirements: *2152826340
37
36
  - !ruby/object:Gem::Dependency
38
- name: daemons
39
- requirement: &2156451220 !ruby/object:Gem::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: '0'
43
+ version: 1.0.3
45
44
  type: :runtime
46
45
  prerelease: false
47
- version_requirements: *2156451220
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
- - Gemfile.lock
60
- - LICENSE
61
- - README.rdoc
62
- - RELEASE_NOTES.rdoc
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: '0'
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)