streambot 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
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 :default => [:check_dependencies,:test]
46
- task :build_gem => [:test,:build]
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, Net::HTTPRedirection
24
- return res
25
- else
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 < Test::Unit::TestCase
5
+ class TestRetweet < BaseTest
10
6
 
11
7
  # setup the test
12
- def setup
13
- # authentication to my test-account on twitter
14
- auth = {:username=>'gr4ydev',:password=>'afe5fek3'}
15
- # actually used one of my own tweets
8
+ def setup
9
+ super
16
10
  @id = 12355936428
17
- # initialize retweet
18
- @retweet = Retweet.new(auth)
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
- - 4
9
- version: 0.2.4
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 00:00:00 +02:00
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