streambot 0.2.4 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +3 -3
- data/lib/retweet.rb +4 -6
- data/lib/streambot.rb +2 -2
- data/test/base_test.rb +35 -0
- data/test/test_retweet.rb +7 -15
- metadata +18 -3
data/Rakefile
CHANGED
@@ -16,6 +16,7 @@ begin
|
|
16
16
|
# Dependency for dealing with twitter streaming API
|
17
17
|
gem.add_dependency "tweetstream",">= 1.0.4"
|
18
18
|
gem.add_development_dependency "webmock",">= 1.0.0"
|
19
|
+
gem.add_development_dependency "rcov",">= 0.9.8"
|
19
20
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
20
21
|
end
|
21
22
|
rescue LoadError
|
@@ -42,13 +43,12 @@ rescue LoadError
|
|
42
43
|
end
|
43
44
|
end
|
44
45
|
|
45
|
-
task :
|
46
|
-
task :
|
46
|
+
task :build_gem => [:test,:rdoc,:build]
|
47
|
+
task :default => [:check_dependencies,:rcov,:build_gem]
|
47
48
|
|
48
49
|
require 'rake/rdoctask'
|
49
50
|
Rake::RDocTask.new do |rdoc|
|
50
51
|
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
51
|
-
|
52
52
|
rdoc.rdoc_dir = 'rdoc'
|
53
53
|
rdoc.title = "streambot #{version}"
|
54
54
|
rdoc.rdoc_files.include('README*')
|
data/lib/retweet.rb
CHANGED
@@ -18,13 +18,11 @@ class Retweet
|
|
18
18
|
# set credentials
|
19
19
|
req.basic_auth @auth[:username],@auth[:password]
|
20
20
|
# connect
|
21
|
-
res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req)
|
21
|
+
res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req)}
|
22
22
|
case res
|
23
|
-
when Net::HTTPSuccess
|
24
|
-
|
25
|
-
|
26
|
-
# when connection wasn't successful print error message
|
27
|
-
puts res.error!
|
23
|
+
when Net::HTTPSuccess then return res
|
24
|
+
else
|
25
|
+
res.error!
|
28
26
|
end
|
29
27
|
end
|
30
28
|
|
data/lib/streambot.rb
CHANGED
@@ -21,8 +21,8 @@ class StreamBot
|
|
21
21
|
# starting to track the keywords via tweetstream
|
22
22
|
@stream.track(@keywords) do |status|
|
23
23
|
# if status.user is NOT in blacklist then retweet it
|
24
|
-
if !@blacklist.include?(status.user)
|
25
|
-
#puts "#{status.text}"
|
24
|
+
if !@blacklist.include?(status.user.screen_name)
|
25
|
+
#puts "#{status.text} ##{status.id}"
|
26
26
|
@retweet.retweet(status.id)
|
27
27
|
end
|
28
28
|
end
|
data/test/base_test.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'yaml'
|
3
|
+
require 'test/unit'
|
4
|
+
require 'webmock'
|
5
|
+
|
6
|
+
include WebMock
|
7
|
+
|
8
|
+
# The base of all tests in this projet
|
9
|
+
# New Testcases need to look like this:
|
10
|
+
#
|
11
|
+
#
|
12
|
+
# class TestName < BaseTest
|
13
|
+
#
|
14
|
+
# def setup
|
15
|
+
# super
|
16
|
+
# # implementation goes here
|
17
|
+
# end
|
18
|
+
#
|
19
|
+
# end
|
20
|
+
class BaseTest < Test::Unit::TestCase
|
21
|
+
|
22
|
+
# reading config.yml and assign all keys to instance
|
23
|
+
def read_config
|
24
|
+
yml_config = YAML.load_file(File.dirname(__FILE__) + "/config.yml")
|
25
|
+
yml_config.each do |key, value|
|
26
|
+
instance_variable_set("@#{key}", value)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# :nodoc:
|
31
|
+
def setup
|
32
|
+
self.read_config
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
data/test/test_retweet.rb
CHANGED
@@ -1,28 +1,20 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'test/unit'
|
3
|
-
require 'webmock'
|
4
1
|
require 'retweet'
|
5
|
-
|
6
|
-
include WebMock
|
2
|
+
require 'base_test'
|
7
3
|
|
8
4
|
# the test for testing retweet functionality
|
9
|
-
class TestRetweet <
|
5
|
+
class TestRetweet < BaseTest
|
10
6
|
|
11
7
|
# setup the test
|
12
|
-
def setup
|
13
|
-
|
14
|
-
auth = {:username=>'gr4ydev',:password=>'afe5fek3'}
|
15
|
-
# actually used one of my own tweets
|
8
|
+
def setup
|
9
|
+
super
|
16
10
|
@id = 12355936428
|
17
|
-
|
18
|
-
@retweet
|
19
|
-
# stubbing (actually webmock does the magic here)
|
20
|
-
stub_request(:post, "http://#{auth[:username]}:#{auth[:password]}@api.twitter.com/1/statuses/retweet/#{@id}.json").to_return(:body => 'content')
|
11
|
+
@retweet = Retweet.new(@auth)
|
12
|
+
stub_request(:post, "http://#{@auth[:username]}:#{@auth[:password]}@api.twitter.com/1/statuses/retweet/#{@id}.json").to_return(:body => 'content')
|
21
13
|
end
|
22
14
|
|
23
15
|
# teardown the test
|
16
|
+
# nil all instance variables
|
24
17
|
def teardown
|
25
|
-
# nil all recent variables
|
26
18
|
@id, @retweet = nil
|
27
19
|
end
|
28
20
|
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
8
|
+
- 5
|
9
|
+
version: 0.2.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Sascha Wessel
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-04-
|
17
|
+
date: 2010-04-23 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -45,6 +45,20 @@ dependencies:
|
|
45
45
|
version: 1.0.0
|
46
46
|
type: :development
|
47
47
|
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rcov
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
segments:
|
56
|
+
- 0
|
57
|
+
- 9
|
58
|
+
- 8
|
59
|
+
version: 0.9.8
|
60
|
+
type: :development
|
61
|
+
version_requirements: *id003
|
48
62
|
description: a simple gem that tracks several keywords via twitter streaming api and re-publish it on twitter
|
49
63
|
email: swessel@gr4yweb.de
|
50
64
|
executables: []
|
@@ -91,5 +105,6 @@ signing_key:
|
|
91
105
|
specification_version: 3
|
92
106
|
summary: retweeting tweets with specified keywords on twitter
|
93
107
|
test_files:
|
108
|
+
- test/base_test.rb
|
94
109
|
- test/test_streambot.rb
|
95
110
|
- test/test_retweet.rb
|