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 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