twitter-userstream 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
File without changes
File without changes
data/Rakefile CHANGED
File without changes
File without changes
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
File without changes
@@ -1,5 +1,6 @@
1
- require 'eventmachine'
1
+ #require 'eventmachine'
2
2
  require 'em-http'
3
+ require 'em-http/middleware/oauth'
3
4
  require 'yajl'
4
5
  require 'pp'
5
6
  require 'load_path_find'
@@ -36,10 +37,10 @@ class Userstream
36
37
 
37
38
  attr_reader :consumer_token, :consumer_secret, :fill_in
38
39
 
39
- def initialize(options = nil)
40
- @consumer_token = options && options[:consumer_token]
41
- @consumer_secret = options && options[:consumer_secret]
42
- @fill_in = options && options[:fill_in]
40
+ def initialize(options = {})
41
+ @consumer_token = options[:consumer_token]
42
+ @consumer_secret = options[:consumer_secret]
43
+ @fill_in = options[:fill_in]
43
44
  @connect_url = "https://userstream.twitter.com/2/user.json"
44
45
  @handlers = Handlers.new(*HandlerTypes.map{|h| []})
45
46
  @on_connect_called = {}
@@ -98,12 +99,14 @@ class Userstream
98
99
 
99
100
  def connect(*users)
100
101
  unless EM.reactor_running?
101
- EM.run { connect(*users) }
102
+ EM.run do
103
+ connect(*users)
104
+ end
102
105
  else
103
106
  @users.concat(users)
104
107
  @user_adder ||= EM.add_periodic_timer(1) {
105
108
  users_to_connect = @users.slice!(0, 10)
106
- if users_to_connect && !users_to_connect.empty?
109
+ if users_to_connect && users_to_connect.any?
107
110
  users_to_connect.each do |user|
108
111
  connect_single(user)
109
112
  end
@@ -22,23 +22,15 @@ class Userstream
22
22
 
23
23
  def get_connection(user, url, method, extras = nil)
24
24
  options = extras ? extras.merge(:timeout => 0) : {:timeout => 0}
25
- if user.oauth?
26
- request = EM::HttpRequest.new(url)
27
- request.send(method, options) do |client|
28
- twitter_oauth_consumer.sign!(client, twitter_oauth_access_token(user.access_token, user.access_secret))
29
- end
30
- else
31
- http = EM::HttpRequest.new(url).send(method, options.merge(:head => {'authorization' => [user.name, user.password]}))
32
- end
33
-
34
- end
35
-
36
- def twitter_oauth_consumer
37
- OAuth::Consumer.new(consumer_token, consumer_secret, :site => "http://twitter.com")
38
- end
39
-
40
- def twitter_oauth_access_token(token=nil,secret=nil)
41
- OAuth::AccessToken.new(twitter_oauth_consumer, token, secret)
25
+ oauthconfig = {
26
+ :consumer_key => consumer_token,
27
+ :consumer_secret => consumer_secret,
28
+ :access_token => user.access_token,
29
+ :access_token_secret => user.access_secret
30
+ }
31
+ request = EM::HttpRequest.new(url)
32
+ request.use EventMachine::Middleware::OAuth, oauthconfig
33
+ request.send(method, options)
42
34
  end
43
35
  end
44
36
  end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
metadata CHANGED
@@ -1,172 +1,169 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: twitter-userstream
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
4
5
  prerelease:
5
- version: 0.1.1
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Joshua Hull
9
9
  - Fabien Penso
10
10
  - Noah Horton
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
-
15
- date: 2011-05-14 00:00:00 -07:00
14
+ date: 2011-05-30 00:00:00.000000000 -07:00
16
15
  default_executable: chirp_growl
17
- dependencies:
18
- - !ruby/object:Gem::Dependency
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
19
18
  name: eventmachine
20
- requirement: &id001 !ruby/object:Gem::Requirement
19
+ requirement: &2156310400 !ruby/object:Gem::Requirement
21
20
  none: false
22
- requirements:
23
- - - ">="
24
- - !ruby/object:Gem::Version
21
+ requirements:
22
+ - - ! '>='
23
+ - !ruby/object:Gem::Version
25
24
  version: 0.12.10
26
25
  type: :runtime
27
26
  prerelease: false
28
- version_requirements: *id001
29
- - !ruby/object:Gem::Dependency
27
+ version_requirements: *2156310400
28
+ - !ruby/object:Gem::Dependency
30
29
  name: em-http-request
31
- requirement: &id002 !ruby/object:Gem::Requirement
30
+ requirement: &2156309560 !ruby/object:Gem::Requirement
32
31
  none: false
33
- requirements:
34
- - - ">="
35
- - !ruby/object:Gem::Version
32
+ requirements:
33
+ - - ! '>='
34
+ - !ruby/object:Gem::Version
36
35
  version: 0.2.7
37
36
  type: :runtime
38
37
  prerelease: false
39
- version_requirements: *id002
40
- - !ruby/object:Gem::Dependency
38
+ version_requirements: *2156309560
39
+ - !ruby/object:Gem::Dependency
41
40
  name: yajl-ruby
42
- requirement: &id003 !ruby/object:Gem::Requirement
41
+ requirement: &2156308200 !ruby/object:Gem::Requirement
43
42
  none: false
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
47
46
  version: 0.7.5
48
47
  type: :runtime
49
48
  prerelease: false
50
- version_requirements: *id003
51
- - !ruby/object:Gem::Dependency
49
+ version_requirements: *2156308200
50
+ - !ruby/object:Gem::Dependency
52
51
  name: load_path_find
53
- requirement: &id004 !ruby/object:Gem::Requirement
52
+ requirement: &2156306740 !ruby/object:Gem::Requirement
54
53
  none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
54
+ requirements:
55
+ - - ! '>='
56
+ - !ruby/object:Gem::Version
58
57
  version: 0.0.5
59
58
  type: :runtime
60
59
  prerelease: false
61
- version_requirements: *id004
62
- - !ruby/object:Gem::Dependency
60
+ version_requirements: *2156306740
61
+ - !ruby/object:Gem::Dependency
63
62
  name: oauth
64
- requirement: &id005 !ruby/object:Gem::Requirement
63
+ requirement: &2156297780 !ruby/object:Gem::Requirement
65
64
  none: false
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
69
68
  version: 0.4.0
70
69
  type: :runtime
71
70
  prerelease: false
72
- version_requirements: *id005
73
- - !ruby/object:Gem::Dependency
71
+ version_requirements: *2156297780
72
+ - !ruby/object:Gem::Dependency
74
73
  name: rainbow
75
- requirement: &id006 !ruby/object:Gem::Requirement
74
+ requirement: &2156296880 !ruby/object:Gem::Requirement
76
75
  none: false
77
- requirements:
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- version: "0"
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
81
80
  type: :runtime
82
81
  prerelease: false
83
- version_requirements: *id006
84
- - !ruby/object:Gem::Dependency
82
+ version_requirements: *2156296880
83
+ - !ruby/object:Gem::Dependency
85
84
  name: growl
86
- requirement: &id007 !ruby/object:Gem::Requirement
85
+ requirement: &2156296380 !ruby/object:Gem::Requirement
87
86
  none: false
88
- requirements:
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- version: "0"
87
+ requirements:
88
+ - - ! '>='
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
92
91
  type: :runtime
93
92
  prerelease: false
94
- version_requirements: *id007
95
- - !ruby/object:Gem::Dependency
93
+ version_requirements: *2156296380
94
+ - !ruby/object:Gem::Dependency
96
95
  name: json
97
- requirement: &id008 !ruby/object:Gem::Requirement
96
+ requirement: &2156295760 !ruby/object:Gem::Requirement
98
97
  none: false
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: "0"
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
103
102
  type: :runtime
104
103
  prerelease: false
105
- version_requirements: *id008
106
- - !ruby/object:Gem::Dependency
104
+ version_requirements: *2156295760
105
+ - !ruby/object:Gem::Dependency
107
106
  name: eventmachine
108
- requirement: &id009 !ruby/object:Gem::Requirement
107
+ requirement: &2156295080 !ruby/object:Gem::Requirement
109
108
  none: false
110
- requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
109
+ requirements:
110
+ - - ! '>='
111
+ - !ruby/object:Gem::Version
113
112
  version: 0.12.10
114
113
  type: :runtime
115
114
  prerelease: false
116
- version_requirements: *id009
117
- - !ruby/object:Gem::Dependency
115
+ version_requirements: *2156295080
116
+ - !ruby/object:Gem::Dependency
118
117
  name: em-http-request
119
- requirement: &id010 !ruby/object:Gem::Requirement
118
+ requirement: &2156294300 !ruby/object:Gem::Requirement
120
119
  none: false
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
120
+ requirements:
121
+ - - ! '>='
122
+ - !ruby/object:Gem::Version
124
123
  version: 0.2.7
125
124
  type: :runtime
126
125
  prerelease: false
127
- version_requirements: *id010
128
- - !ruby/object:Gem::Dependency
126
+ version_requirements: *2156294300
127
+ - !ruby/object:Gem::Dependency
129
128
  name: yajl-ruby
130
- requirement: &id011 !ruby/object:Gem::Requirement
129
+ requirement: &2156293500 !ruby/object:Gem::Requirement
131
130
  none: false
132
- requirements:
133
- - - ">="
134
- - !ruby/object:Gem::Version
131
+ requirements:
132
+ - - ! '>='
133
+ - !ruby/object:Gem::Version
135
134
  version: 0.7.5
136
135
  type: :runtime
137
136
  prerelease: false
138
- version_requirements: *id011
139
- - !ruby/object:Gem::Dependency
137
+ version_requirements: *2156293500
138
+ - !ruby/object:Gem::Dependency
140
139
  name: load_path_find
141
- requirement: &id012 !ruby/object:Gem::Requirement
140
+ requirement: &2156291900 !ruby/object:Gem::Requirement
142
141
  none: false
143
- requirements:
144
- - - ">="
145
- - !ruby/object:Gem::Version
142
+ requirements:
143
+ - - ! '>='
144
+ - !ruby/object:Gem::Version
146
145
  version: 0.0.5
147
146
  type: :runtime
148
147
  prerelease: false
149
- version_requirements: *id012
150
- - !ruby/object:Gem::Dependency
148
+ version_requirements: *2156291900
149
+ - !ruby/object:Gem::Dependency
151
150
  name: oauth
152
- requirement: &id013 !ruby/object:Gem::Requirement
151
+ requirement: &2156290840 !ruby/object:Gem::Requirement
153
152
  none: false
154
- requirements:
155
- - - ">="
156
- - !ruby/object:Gem::Version
153
+ requirements:
154
+ - - ! '>='
155
+ - !ruby/object:Gem::Version
157
156
  version: 0.4.0
158
157
  type: :runtime
159
158
  prerelease: false
160
- version_requirements: *id013
159
+ version_requirements: *2156290840
161
160
  description: Eventmachine-based Twitter Userstream client
162
161
  email: noah@involver.com
163
- executables:
162
+ executables:
164
163
  - chirp_growl
165
164
  extensions: []
166
-
167
165
  extra_rdoc_files: []
168
-
169
- files:
166
+ files:
170
167
  - Gemfile
171
168
  - Gemfile.lock
172
169
  - Rakefile
@@ -190,30 +187,26 @@ files:
190
187
  has_rdoc: true
191
188
  homepage: https://github.com/nhorton/twitter-userstream
192
189
  licenses: []
193
-
194
190
  post_install_message:
195
191
  rdoc_options: []
196
-
197
- require_paths:
192
+ require_paths:
198
193
  - lib
199
- required_ruby_version: !ruby/object:Gem::Requirement
194
+ required_ruby_version: !ruby/object:Gem::Requirement
200
195
  none: false
201
- requirements:
202
- - - ">="
203
- - !ruby/object:Gem::Version
204
- version: "0"
205
- required_rubygems_version: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ! '>='
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ required_rubygems_version: !ruby/object:Gem::Requirement
206
201
  none: false
207
- requirements:
208
- - - ">="
209
- - !ruby/object:Gem::Version
210
- version: "0"
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
211
206
  requirements: []
212
-
213
207
  rubyforge_project:
214
208
  rubygems_version: 1.6.2
215
209
  signing_key:
216
210
  specification_version: 3
217
211
  summary: Eventmachine-based Twitter Userstream client
218
212
  test_files: []
219
-