oii_twitter_goodies 0.0.81 → 0.0.740

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: caa9222364f19589980c52ebf5964db505e2e116
4
- data.tar.gz: 7622951d0744f2b7ed1a7625cd6fc43ff84b7106
3
+ metadata.gz: 5673fd29f5920bdfa29217331e3d21d6c36a0d77
4
+ data.tar.gz: 37ef261c51ca7fe270ef0732658dd8204dc06669
5
5
  SHA512:
6
- metadata.gz: 26ed52798666b5bb72f008ad22374968a5a19aaa6dcd4961284a91c6a5bcf21bf152c6625094142ec50182eeb0658cc733fb992e12d16550aa4e7d7e1e5cfe3a
7
- data.tar.gz: 35e00579537cffa047068a2ee2afa87bdbd361bb494df5d3d7fcfd8957f468d381090fb8dabe425c0177d5b7a4de6f4a2c2867dd4adda3cecea583fe92318237
6
+ metadata.gz: 0773f580df74e17750f9138683794b0aaf11f0d145d0f23ea89ce715bdc62bb8d22c4aed98004482673d334439273cb59378289c129035989f6644bfa738a94a
7
+ data.tar.gz: 1fd6016a2c59e70c0e00ac722b58e5d1b2b53c206b989620f73dd054def3e899941ea4413829f3281d6a89302158e7f89053b3077029029d927cff1392c9356b
data/.DS_Store ADDED
Binary file
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile CHANGED
@@ -1,3 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in oii_twitter_goodies.gemspec
1
4
  gem 'bundler'
2
5
  gem 'mongo_mapper'
3
6
  gem 'oauth'
@@ -6,4 +9,4 @@ gem 'tweetstream'
6
9
  gem 'hashie'
7
10
  gem 'typhoeus'
8
11
  gem 'json'
9
-
12
+ gemspec
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012 Devin Gaffney
1
+ Copyright (c) 2013 Devin Gaffney
2
2
 
3
3
  MIT License
4
4
 
@@ -19,4 +19,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
19
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
20
  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
21
  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -7,8 +7,8 @@ require 'hashie'
7
7
  require 'typhoeus'
8
8
  require 'json'
9
9
 
10
- require File.dirname(__FILE__)+'/oii_twitter_goodies/version.rb'
10
+ require "oii_twitter_goodies/version"
11
11
 
12
- Dir[File.dirname(__FILE__) + '/oii_twitter_goodies/extensions/*.rb'].each {|file| require file }
13
- Dir[File.dirname(__FILE__) + '/oii_twitter_goodies/lib/*.rb'].each {|file| require file }
14
- Dir[File.dirname(__FILE__) + '/oii_twitter_goodies/model/*.rb'].each {|file| require file }
12
+ Dir[File.dirname(__FILE__)+'/oii_twitter_goodies/extensions/*.rb'].each {|file| require file }
13
+ Dir[File.dirname(__FILE__)+'/oii_twitter_goodies/lib/*.rb'].each {|file| require file }
14
+ Dir[File.dirname(__FILE__)+'/oii_twitter_goodies/model/*.rb'].each {|file| require file }
@@ -1,30 +1,30 @@
1
- # module Twitter
2
- # module API
3
- # module Utils
4
- # def objects_from_response(klass, request_method, path, options={})
5
- # response = send(request_method.to_sym, path, options)
6
- # if response.class == Hash && response[:body]
7
- # response = response[:body]
8
- # objects_from_array(klass, response)
9
- # else
10
- # return response
11
- # end
12
- # end
13
- #
14
- # def object_from_response(klass, request_method, path, options={})
15
- # response = send(request_method.to_sym, path, options)
16
- # return klass.from_response(response) || response
17
- # end
18
- #
19
- # def cursor_from_response(collection_name, klass, request_method, path, options, method_name)
20
- # merge_default_cursor!(options)
21
- # response = send(request_method.to_sym, path, options)
22
- # if (response.class == Hash || response.class == BSON::OrderedHash) && !response.keys.include?(:body)
23
- # Twitter::Cursor.from_response({:body => response}, collection_name.to_sym, klass, self, method_name, options)
24
- # else
25
- # Twitter::Cursor.from_response(response, collection_name.to_sym, klass, self, method_name, options)
26
- # end
27
- # end
28
- # end
29
- # end
30
- # end
1
+ module Twitter
2
+ module API
3
+ module Utils
4
+ def objects_from_response(klass, request_method, path, options={})
5
+ response = send(request_method.to_sym, path, options)
6
+ if response.class == Hash && response[:body]
7
+ response = response[:body]
8
+ objects_from_array(klass, response)
9
+ else
10
+ return response
11
+ end
12
+ end
13
+
14
+ def object_from_response(klass, request_method, path, options={})
15
+ response = send(request_method.to_sym, path, options)
16
+ return klass.from_response(response) || response
17
+ end
18
+
19
+ def cursor_from_response(collection_name, klass, request_method, path, options, method_name)
20
+ merge_default_cursor!(options)
21
+ response = send(request_method.to_sym, path, options)
22
+ if (response.class == Hash || response.class == BSON::OrderedHash) && !response.keys.include?(:body)
23
+ Twitter::Cursor.from_response({:body => response}, collection_name.to_sym, klass, self, method_name, options)
24
+ else
25
+ Twitter::Cursor.from_response(response, collection_name.to_sym, klass, self, method_name, options)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,46 +1,17 @@
1
- # module Twitter
2
- # class Client
3
- # def get(path, params={})
4
- # lookup = TwitterAPICall.first(:url => path.to_s, :params => params)
5
- # if lookup
6
- # return lookup.data
7
- # else
8
- # response = request(:get, path, params)
9
- # if response[:status] && response[:status] == 200
10
- # lookup = TwitterAPICall.new(:url => path.to_s, :params => params, :data => response[:body])
11
- # lookup.save!
12
- # end
13
- # return response
14
- # end
15
- # end
16
- #
17
- # def post(path, params={})
18
- # lookup = TwitterAPICall.first(:url => path.to_s, :params => params)
19
- # if lookup
20
- # return lookup.data
21
- # else
22
- # signature_params = params.values.any?{|value| value.respond_to?(:to_io)} ? {} : params
23
- # response = request(:post, path, params, signature_params)
24
- # if response[:status] && response[:status] == 200
25
- # lookup = TwitterAPICall.new(:url => path.to_s, :params => params, :data => response[:body])
26
- # lookup.save!
27
- # end
28
- # return response
29
- # end
30
- # end
31
- #
32
- # def put(path, params={})
33
- # lookup = TwitterAPICall.first(:url => path.to_s, :params => params)
34
- # if lookup
35
- # return lookup.data
36
- # else
37
- # response = request(:put, path, params)
38
- # if response[:status] && response[:status] == 200
39
- # lookup = TwitterAPICall.new(:url => path.to_s, :params => params, :data => response[:body])
40
- # lookup.save!
41
- # end
42
- # return response
43
- # end
44
- # end
45
- # end
46
- # end
1
+ module Twitter
2
+ class Client
3
+ def get(path, params={})
4
+ lookup = TwitterAPICall.first(:url => path.to_s, :params => params)
5
+ if lookup
6
+ return lookup.data
7
+ else
8
+ response = request(:get, path, params)
9
+ if response[:status] && response[:status] == 200
10
+ lookup = TwitterAPICall.new(:url => path.to_s, :params => params, :data => response[:body])
11
+ lookup.save!
12
+ end
13
+ return response
14
+ end
15
+ end
16
+ end
17
+ end
@@ -32,19 +32,7 @@ class FollowersForUsers
32
32
  puts "Done!"
33
33
  return results
34
34
  end
35
-
36
- def grab_followers_iterative(&block)
37
- @screen_names.each do |screen_name|
38
- puts "Current progress: #{@screen_names.index(screen_name)}/#{@screen_names.length} started"
39
- user = user_data_for(screen_name).first
40
- follower_ids = follower_ids_for(screen_name)
41
- follower_ids.each_slice(100) do |follower_id_slice|
42
- block.call([user, user_data_for_set(follower_id_slice)])
43
- end
44
- puts "Current progress: ##{@screen_names.index(screen_name)}/#{@screen_names.length} complete"
45
- end
46
- end
47
-
35
+
48
36
  def follower_ids_for(screen_name)
49
37
  return direction_ids_for screen_name, "follower"
50
38
  end
@@ -58,68 +46,19 @@ class FollowersForUsers
58
46
  ids = []
59
47
  while cursor != 0
60
48
  puts cursor
61
- begin
62
- data = Hashie::Mash[@client.send(direction+"_ids", screen_name, :cursor => cursor).attrs]
63
- rescue Twitter::Error::BadGateway
64
- puts "Got Twitter::Error::BadGateway error - usually this is just a missed connect from Twitter."
65
- sleep(10)
66
- retry
67
- rescue Twitter::Error::TooManyRequests
68
- puts "Got Twitter::Error::TooManyRequests error - we are rate limited and will sleep for 15 minutes. See you in a bit."
69
- sleep(15*60)
70
- retry
71
- rescue Twitter::Error::ClientError
72
- puts "Got Twitter::Error::ClientError error - something weird happened and we're going to retry."
73
- sleep(5)
74
- retry
75
- rescue Twitter::Error::InternalServerError
76
- puts "Got Twitter::Error::InternalServerError error - something weird happened and we're going to retry."
77
- sleep(5)
78
- retry
79
- rescue Twitter::Error::ServiceUnavailable
80
- puts "Got Twitter::Error::ServiceUnavailable error - Fail whaled. We'll hit those guys again in 10"
81
- sleep(10)
82
- retry
83
- end
84
- ids << data.ids
49
+ data = Hashie::Mash[@client.send(direction+"_ids", screen_name, :cursor => cursor).attrs]
50
+ ids = ids|data.ids
85
51
  cursor = data["next_cursor"]
86
52
  end
87
- return ids.flatten.uniq
53
+ return ids
88
54
  end
89
55
 
90
56
  def user_data_for(screen_names)
91
57
  screen_names = [screen_names].flatten
92
58
  user_data = []
93
- size = screen_names.length/100
94
59
  screen_names.each_slice(100) do |screen_name_set|
95
- user_data << user_data_for_set(screen_name_set)
96
- end
97
- user_data.flatten
98
- end
99
-
100
- def user_data_for_set(screen_name_set)
101
- begin
102
- return @client.users(screen_name_set)
103
- rescue Twitter::Error::BadGateway
104
- puts "Got Twitter::Error::BadGateway error - usually this is just a missed connect from Twitter."
105
- sleep(10)
106
- retry
107
- rescue Twitter::Error::TooManyRequests
108
- puts "Got Twitter::Error::TooManyRequests error - we are rate limited and will sleep for 15 minutes. See you in a bit."
109
- sleep(15*60)
110
- retry
111
- rescue Twitter::Error::ClientError
112
- puts "Got Twitter::Error::ClientError error - something weird happened and we're going to retry."
113
- sleep(5)
114
- retry
115
- rescue Twitter::Error::InternalServerError
116
- puts "Got Twitter::Error::InternalServerError error - something weird happened and we're going to retry."
117
- sleep(5)
118
- retry
119
- rescue Twitter::Error::ServiceUnavailable
120
- puts "Got Twitter::Error::ServiceUnavailable error - Fail whaled. We'll hit those guys again in 10"
121
- sleep(10)
122
- retry
60
+ user_data = [user_data|@client.users(screen_name_set)].flatten
123
61
  end
62
+ user_data
124
63
  end
125
64
  end
@@ -13,7 +13,7 @@ class BoundingBox
13
13
  return nil if bounding_box.nil?
14
14
  bounding_box = Hashie::Mash[bounding_box]
15
15
  obj = self.new
16
- obj.type = bounding_box["type"]
16
+ obj.type = bounding_box["type"] || "Not Specified"
17
17
  obj.coordinates = bounding_box["coordinates"]
18
18
  obj.place_id = place_id
19
19
  obj.save!
@@ -23,8 +23,7 @@ class Place
23
23
 
24
24
  def self.new_from_raw(place, tweet_id)
25
25
  return if place.nil?
26
- place = place.attrs if place.class == Twitter::Place
27
- place = Hashie::Mash[place]
26
+ place = Hashie::Mash[place.attrs]
28
27
  obj = self.new
29
28
  obj.twitter_id = place["twitter_id"]
30
29
  obj.url = place["url"]
@@ -33,8 +32,7 @@ class Place
33
32
  obj.full_name = place["full_name"]
34
33
  obj.country_code = place["country_code"]
35
34
  obj.country = place["country"]
36
- place["bounding_box"] = place["bounding_box"].attrs if Twitter::Place
37
- bounding_box = BoundingBox.new_from_raw(place["bounding_box"], obj._id)
35
+ bounding_box = BoundingBox.new_from_raw(place["bounding_box"].attrs, obj._id)
38
36
  if bounding_box
39
37
  obj.bounding_box = bounding_box
40
38
  end
@@ -48,7 +48,6 @@ class Tweet
48
48
 
49
49
  def self.new_from_raw(tweet, user_id)
50
50
  return if tweet.nil?
51
- tweet = tweet.attrs if tweet.class == Twitter::Tweet
52
51
  tweet = Hashie::Mash[tweet]
53
52
  obj = self.new
54
53
  obj.created_at = tweet["created_at"]
@@ -47,7 +47,6 @@ class User
47
47
  end
48
48
 
49
49
  def self.new_from_raw(status)
50
- status = status.attrs if status.class == Twitter::User
51
50
  status = Hashie::Mash[status]
52
51
  obj = self.new
53
52
  obj.twitter_id = status["user"].nil? ? status["id"] : status["user"]["id"]
@@ -1,3 +1,3 @@
1
1
  module OIITwitterGoodies
2
- VERSION = "0.0.81"
2
+ VERSION = "0.0.740"
3
3
  end
@@ -22,6 +22,17 @@ Gem::Specification.new do |gem|
22
22
  gem.add_development_dependency "hashie"
23
23
  gem.add_development_dependency "typhoeus"
24
24
  gem.add_development_dependency "json"
25
+ gem.add_dependency "bundler", ">= 1.0.0"
26
+ gem.add_dependency "mongo_mapper"
27
+ gem.add_dependency "bcrypt-ruby"
28
+ gem.add_dependency "bson_ext"
29
+ gem.add_dependency "oauth"
30
+ gem.add_dependency "twitter"
31
+ gem.add_dependency "tweetstream"
32
+ gem.add_dependency "minitest"
33
+ gem.add_dependency "hashie"
34
+ gem.add_dependency "typhoeus"
35
+ gem.add_dependency "json"
25
36
  gem.files = `git ls-files`.split($/)
26
37
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
27
38
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oii_twitter_goodies
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.81
4
+ version: 0.0.740
5
5
  platform: ruby
6
6
  authors:
7
7
  - Devin Gaffney
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-06 00:00:00.000000000 Z
11
+ date: 2013-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -164,6 +164,160 @@ dependencies:
164
164
  - - ! '>='
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: bundler
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: 1.0.0
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ! '>='
179
+ - !ruby/object:Gem::Version
180
+ version: 1.0.0
181
+ - !ruby/object:Gem::Dependency
182
+ name: mongo_mapper
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ! '>='
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ! '>='
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: bcrypt-ruby
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ! '>='
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :runtime
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ! '>='
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: bson_ext
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ! '>='
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ! '>='
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: oauth
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ! '>='
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :runtime
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ! '>='
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: twitter
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ! '>='
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :runtime
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ! '>='
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: tweetstream
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ! '>='
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :runtime
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ! '>='
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
265
+ - !ruby/object:Gem::Dependency
266
+ name: minitest
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - ! '>='
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
272
+ type: :runtime
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - ! '>='
277
+ - !ruby/object:Gem::Version
278
+ version: '0'
279
+ - !ruby/object:Gem::Dependency
280
+ name: hashie
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - ! '>='
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ type: :runtime
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - ! '>='
291
+ - !ruby/object:Gem::Version
292
+ version: '0'
293
+ - !ruby/object:Gem::Dependency
294
+ name: typhoeus
295
+ requirement: !ruby/object:Gem::Requirement
296
+ requirements:
297
+ - - ! '>='
298
+ - !ruby/object:Gem::Version
299
+ version: '0'
300
+ type: :runtime
301
+ prerelease: false
302
+ version_requirements: !ruby/object:Gem::Requirement
303
+ requirements:
304
+ - - ! '>='
305
+ - !ruby/object:Gem::Version
306
+ version: '0'
307
+ - !ruby/object:Gem::Dependency
308
+ name: json
309
+ requirement: !ruby/object:Gem::Requirement
310
+ requirements:
311
+ - - ! '>='
312
+ - !ruby/object:Gem::Version
313
+ version: '0'
314
+ type: :runtime
315
+ prerelease: false
316
+ version_requirements: !ruby/object:Gem::Requirement
317
+ requirements:
318
+ - - ! '>='
319
+ - !ruby/object:Gem::Version
320
+ version: '0'
167
321
  description: OII Twitter Goodies!
168
322
  email:
169
323
  - itsme@devingaffney.com
@@ -171,8 +325,9 @@ executables: []
171
325
  extensions: []
172
326
  extra_rdoc_files: []
173
327
  files:
328
+ - .DS_Store
329
+ - .gitignore
174
330
  - Gemfile
175
- - Gemfile.lock
176
331
  - LICENSE.txt
177
332
  - README.md
178
333
  - Rakefile
@@ -202,12 +357,7 @@ files:
202
357
  - lib/oii_twitter_goodies/model/user.rb
203
358
  - lib/oii_twitter_goodies/model/user_mention.rb
204
359
  - lib/oii_twitter_goodies/version.rb
205
- - oii_twitter_goodies-0.0.8.gem
206
360
  - oii_twitter_goodies.gemspec
207
- - pkg/oii_twitter_goodies-0.0.1.gem
208
- - pkg/oii_twitter_goodies-0.0.2.gem
209
- - pkg/oii_twitter_goodies-0.0.8.gem
210
- - pkg/oii_twitter_goodies-0.0.81.gem
211
361
  homepage: http://github.com/DGaffney/oii_twitter_goodies
212
362
  licenses: []
213
363
  metadata: {}
data/Gemfile.lock DELETED
@@ -1,75 +0,0 @@
1
- GEM
2
- specs:
3
- activemodel (3.2.12)
4
- activesupport (= 3.2.12)
5
- builder (~> 3.0.0)
6
- activesupport (3.2.12)
7
- i18n (~> 0.6)
8
- multi_json (~> 1.0)
9
- addressable (2.3.3)
10
- bson (1.8.3)
11
- builder (3.0.4)
12
- cookiejar (0.3.0)
13
- daemons (1.1.9)
14
- em-http-request (1.0.3)
15
- addressable (>= 2.2.3)
16
- cookiejar
17
- em-socksify
18
- eventmachine (>= 1.0.0.beta.4)
19
- http_parser.rb (>= 0.5.3)
20
- em-socksify (0.2.1)
21
- eventmachine (>= 1.0.0.beta.4)
22
- em-twitter (0.2.1)
23
- eventmachine (~> 1.0)
24
- http_parser.rb (~> 0.5)
25
- simple_oauth (~> 0.1)
26
- ethon (0.5.10)
27
- ffi (~> 1.3.0)
28
- mime-types (~> 1.18)
29
- eventmachine (1.0.3)
30
- faraday (0.8.6)
31
- multipart-post (~> 1.1)
32
- ffi (1.3.1)
33
- hashie (2.0.2)
34
- http_parser.rb (0.5.3)
35
- i18n (0.6.4)
36
- json (1.7.7)
37
- mime-types (1.21)
38
- mongo (1.8.3)
39
- bson (~> 1.8.3)
40
- mongo_mapper (0.12.0)
41
- activemodel (~> 3.0)
42
- activesupport (~> 3.0)
43
- plucky (~> 0.5.2)
44
- multi_json (1.6.1)
45
- multipart-post (1.2.0)
46
- oauth (0.4.7)
47
- plucky (0.5.2)
48
- mongo (~> 1.5)
49
- simple_oauth (0.2.0)
50
- tweetstream (2.4.0)
51
- daemons (~> 1.1)
52
- em-http-request (~> 1.0.2)
53
- em-twitter (~> 0.2)
54
- twitter (~> 4.0)
55
- yajl-ruby (~> 1.1)
56
- twitter (4.6.1)
57
- faraday (~> 0.8, < 0.10)
58
- multi_json (~> 1.0)
59
- simple_oauth (~> 0.2)
60
- typhoeus (0.6.2)
61
- ethon (~> 0.5.10)
62
- yajl-ruby (1.1.0)
63
-
64
- PLATFORMS
65
- ruby
66
-
67
- DEPENDENCIES
68
- bundler
69
- hashie
70
- json
71
- mongo_mapper
72
- oauth
73
- tweetstream
74
- twitter
75
- typhoeus
Binary file
Binary file
Binary file
Binary file
Binary file