streambot 0.2.3 → 0.2.4

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.
Files changed (4) hide show
  1. data/Rakefile +3 -4
  2. data/lib/retweet.rb +2 -2
  3. data/test/test_retweet.rb +40 -0
  4. metadata +18 -3
data/Rakefile CHANGED
@@ -15,9 +15,9 @@ begin
15
15
 
16
16
  # Dependency for dealing with twitter streaming API
17
17
  gem.add_dependency "tweetstream",">= 1.0.4"
18
+ gem.add_development_dependency "webmock",">= 1.0.0"
18
19
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
19
20
  end
20
- Jeweler::GemcutterTasks.new
21
21
  rescue LoadError
22
22
  puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
23
23
  end
@@ -42,9 +42,8 @@ rescue LoadError
42
42
  end
43
43
  end
44
44
 
45
- task :test => :check_dependencies
46
-
47
- task :default => :test
45
+ task :default => [:check_dependencies,:test]
46
+ task :build_gem => [:test,:build]
48
47
 
49
48
  require 'rake/rdoctask'
50
49
  Rake::RDocTask.new do |rdoc|
data/lib/retweet.rb CHANGED
@@ -20,11 +20,11 @@ class Retweet
20
20
  # connect
21
21
  res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req) }
22
22
  case res
23
- #OK
24
23
  when Net::HTTPSuccess, Net::HTTPRedirection
24
+ return res
25
25
  else
26
26
  # when connection wasn't successful print error message
27
- res.error!
27
+ puts res.error!
28
28
  end
29
29
  end
30
30
 
@@ -0,0 +1,40 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require 'webmock'
4
+ require 'retweet'
5
+
6
+ include WebMock
7
+
8
+ # the test for testing retweet functionality
9
+ class TestRetweet < Test::Unit::TestCase
10
+
11
+ # 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
16
+ @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')
21
+ end
22
+
23
+ # teardown the test
24
+ def teardown
25
+ # nil all recent variables
26
+ @id, @retweet = nil
27
+ end
28
+
29
+ # retweet
30
+ def test_retweet
31
+ # no permission to access web!
32
+ WebMock.disable_net_connect!
33
+ # retweet the given id
34
+ response = @retweet.retweet(@id)
35
+ # assertion
36
+ assert_not_nil(response)
37
+ assert_equal('content',response.body)
38
+ end
39
+
40
+ end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 3
9
- version: 0.2.3
8
+ - 4
9
+ version: 0.2.4
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-15 00:00:00 +02:00
17
+ date: 2010-04-17 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -31,6 +31,20 @@ dependencies:
31
31
  version: 1.0.4
32
32
  type: :runtime
33
33
  version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: webmock
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ segments:
42
+ - 1
43
+ - 0
44
+ - 0
45
+ version: 1.0.0
46
+ type: :development
47
+ version_requirements: *id002
34
48
  description: a simple gem that tracks several keywords via twitter streaming api and re-publish it on twitter
35
49
  email: swessel@gr4yweb.de
36
50
  executables: []
@@ -78,3 +92,4 @@ specification_version: 3
78
92
  summary: retweeting tweets with specified keywords on twitter
79
93
  test_files:
80
94
  - test/test_streambot.rb
95
+ - test/test_retweet.rb