autotest-notification 2.1.0

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 (60) hide show
  1. data/History.txt +61 -0
  2. data/License.txt +20 -0
  3. data/Manifest.txt +59 -0
  4. data/PostInstall.txt +9 -0
  5. data/README.txt +139 -0
  6. data/Rakefile +4 -0
  7. data/autotest-notification.gemspec +48 -0
  8. data/bin/an-install +105 -0
  9. data/bin/an-uninstall +49 -0
  10. data/bin/playsound +0 -0
  11. data/config/hoe.rb +77 -0
  12. data/config/requirements.rb +15 -0
  13. data/images/buuf/fail.png +0 -0
  14. data/images/buuf/pass.png +0 -0
  15. data/images/buuf/pending.png +0 -0
  16. data/images/doom/doom_0.png +0 -0
  17. data/images/doom/doom_1.png +0 -0
  18. data/images/doom/doom_2.png +0 -0
  19. data/images/doom/doom_3.png +0 -0
  20. data/images/doom/doom_4.png +0 -0
  21. data/images/doom/doom_5.png +0 -0
  22. data/images/doom/doom_6.png +0 -0
  23. data/images/fail.png +0 -0
  24. data/images/pass.png +0 -0
  25. data/images/pending.png +0 -0
  26. data/lib/autotest_notification.rb +128 -0
  27. data/lib/autotest_notification/buuf.rb +9 -0
  28. data/lib/autotest_notification/cygwin.rb +34 -0
  29. data/lib/autotest_notification/doom.rb +27 -0
  30. data/lib/autotest_notification/linux.rb +58 -0
  31. data/lib/autotest_notification/mac.rb +30 -0
  32. data/lib/autotest_notification/version.rb +9 -0
  33. data/lib/autotest_notification/windows.rb +11 -0
  34. data/script/console +10 -0
  35. data/script/destroy +14 -0
  36. data/script/generate +14 -0
  37. data/script/txt2html +82 -0
  38. data/setup.rb +1585 -0
  39. data/sounds/doom/0.wav +0 -0
  40. data/sounds/doom/1.wav +0 -0
  41. data/sounds/doom/2.wav +0 -0
  42. data/sounds/doom/3.wav +0 -0
  43. data/sounds/doom/4.wav +0 -0
  44. data/sounds/doom/5.wav +0 -0
  45. data/sounds/doom/6.wav +0 -0
  46. data/tasks/deployment.rake +34 -0
  47. data/tasks/environment.rake +7 -0
  48. data/tasks/website.rake +17 -0
  49. data/test/autotest_notification/test_cygwin.rb +10 -0
  50. data/test/autotest_notification/test_linux.rb +91 -0
  51. data/test/autotest_notification/test_mac.rb +78 -0
  52. data/test/autotest_notification/test_windows.rb +12 -0
  53. data/test/test_autotest_notification.rb +44 -0
  54. data/test/test_helper.rb +25 -0
  55. data/website/index.html +86 -0
  56. data/website/index.txt +83 -0
  57. data/website/javascripts/rounded_corners_lite.inc.js +285 -0
  58. data/website/stylesheets/screen.css +138 -0
  59. data/website/template.html.erb +48 -0
  60. metadata +155 -0
data/sounds/doom/0.wav ADDED
Binary file
data/sounds/doom/1.wav ADDED
Binary file
data/sounds/doom/2.wav ADDED
Binary file
data/sounds/doom/3.wav ADDED
Binary file
data/sounds/doom/4.wav ADDED
Binary file
data/sounds/doom/5.wav ADDED
Binary file
data/sounds/doom/6.wav ADDED
Binary file
@@ -0,0 +1,34 @@
1
+ desc 'Release the website and new gem version'
2
+ task :deploy => [:check_version, :website, :release] do
3
+ puts "Remember to create SVN tag:"
4
+ puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " +
5
+ "svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} "
6
+ puts "Suggested comment:"
7
+ puts "Tagging release #{CHANGES}"
8
+ end
9
+
10
+ desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
11
+ task :local_deploy => [:website_generate, :install_gem]
12
+
13
+ task :check_version do
14
+ unless ENV['VERSION']
15
+ puts 'Must pass a VERSION=x.y.z release version'
16
+ exit
17
+ end
18
+ unless ENV['VERSION'] == VERS
19
+ puts "Please update your version.rb to match the release version, currently #{VERS}"
20
+ exit
21
+ end
22
+ end
23
+
24
+ desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
25
+ task :install_gem_no_doc => [:clean, :package] do
26
+ sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
27
+ end
28
+
29
+ namespace :manifest do
30
+ desc 'Recreate Manifest.txt to include ALL files'
31
+ task :refresh do
32
+ `rake check_manifest | patch -p0 > Manifest.txt`
33
+ end
34
+ end
@@ -0,0 +1,7 @@
1
+ task :ruby_env do
2
+ RUBY_APP = if RUBY_PLATFORM =~ /java/
3
+ "jruby"
4
+ else
5
+ "ruby"
6
+ end unless defined? RUBY_APP
7
+ end
@@ -0,0 +1,17 @@
1
+ desc 'Generate website files'
2
+ task :website_generate => :ruby_env do
3
+ (Dir['website/**/*.txt'] - Dir['website/version*.txt']).each do |txt|
4
+ sh %{ #{RUBY_APP} script/txt2html #{txt} > #{txt.gsub(/txt$/,'html')} }
5
+ end
6
+ end
7
+
8
+ desc 'Upload website files to rubyforge'
9
+ task :website_upload do
10
+ host = "#{rubyforge_username}@rubyforge.org"
11
+ remote_dir = "/var/www/gforge-projects/#{PATH}/"
12
+ local_dir = 'website'
13
+ sh %{rsync -aCv #{local_dir}/ #{host}:#{remote_dir}}
14
+ end
15
+
16
+ desc 'Generate and upload website files'
17
+ task :website => [:website_generate, :website_upload, :publish_docs]
@@ -0,0 +1,10 @@
1
+ require File.dirname(__FILE__) + '/../test_helper.rb'
2
+
3
+ class TestCygwin < Test::Unit::TestCase
4
+
5
+ def test_notify
6
+ AutotestNotification::Cygwin.expects(:get_image_path).with("image").returns(" image ")
7
+ AutotestNotification::Cygwin.expects(:system).with('sncmd /m \'title\' \'msg\' \'image\' /t 3')
8
+ AutotestNotification::Cygwin.notify("title", "msg", "image")
9
+ end
10
+ end
@@ -0,0 +1,91 @@
1
+ require File.dirname(__FILE__) + '/../test_helper.rb'
2
+
3
+ class TestLinux < Test::Unit::TestCase
4
+
5
+ def setup
6
+ turn_methods_public AutotestNotification::Linux
7
+ AutotestNotification.const_set :DOOM_EDITION, false
8
+ AutotestNotification.const_set :SPEAKING, false
9
+ AutotestNotification.const_set :STICKY, false
10
+ AutotestNotification.const_set :BUUF, false
11
+ end
12
+
13
+ def test_notify_when_use_notify_without_speak
14
+ AutotestNotification::Linux.expects(:has_notify?).returns(true)
15
+ verify_notify(:notify_send)
16
+ end
17
+
18
+ def test_notify_when_use_zenity_without_speak
19
+ AutotestNotification::Linux.expects(:has_notify?).returns(false)
20
+ AutotestNotification::Linux.expects(:has_zenity?).returns(true)
21
+ verify_notify(:zenity)
22
+ end
23
+
24
+ def test_notify_when_use_kdialog_without_speak
25
+ AutotestNotification::Linux.expects(:has_notify?).returns(false)
26
+ AutotestNotification::Linux.expects(:has_zenity?).returns(false)
27
+ AutotestNotification::Linux.expects(:has_kdialog?).returns(true)
28
+ verify_notify(:kdialog)
29
+ end
30
+
31
+ def test_notify_when_use_notify_with_speak
32
+ AutotestNotification.const_set :SPEAKING, true
33
+ AutotestNotification::Linux.expects(:has_notify?).returns(true)
34
+ AutotestNotification::Linux.expects(:system).with("/usr/bin/espeak '1 test failed'")
35
+ verify_notify(:notify_send)
36
+ end
37
+
38
+ def test_notify_when_use_zenity_with_speak
39
+ AutotestNotification.const_set :SPEAKING, true
40
+ AutotestNotification::Linux.expects(:has_notify?).returns(false)
41
+ AutotestNotification::Linux.expects(:has_zenity?).returns(true)
42
+ AutotestNotification::Linux.expects(:system).with("/usr/bin/espeak '1 test failed'")
43
+ verify_notify(:zenity)
44
+ end
45
+
46
+ def test_notify_when_use_kdialog_with_speak
47
+ AutotestNotification.const_set :SPEAKING, true
48
+ AutotestNotification::Linux.expects(:has_notify?).returns(false)
49
+ AutotestNotification::Linux.expects(:has_zenity?).returns(false)
50
+ AutotestNotification::Linux.expects(:has_kdialog?).returns(true)
51
+ AutotestNotification::Linux.expects(:system).with("/usr/bin/espeak '1 test failed'")
52
+ verify_notify(:kdialog)
53
+ end
54
+
55
+ def test_notify_send
56
+ AutotestNotification::Linux.expects(:system).with('notify-send -t 3000 -i image -u normal \'title\' \'msg\'')
57
+ AutotestNotification::Linux.notify_send("title", "msg", "image")
58
+ end
59
+
60
+ def test_notify_kdialog
61
+ AutotestNotification::Linux.expects(:system).with('kdialog --title \'title\' --passivepopup \'<img src="image" align="middle"> msg\' 3')
62
+ AutotestNotification::Linux.kdialog("title", "msg", "image")
63
+ end
64
+
65
+ def test_notify_zenity
66
+ AutotestNotification::Linux.expects(:system).with('zenity --info --text=\'msg\' --title=\'title\'')
67
+ AutotestNotification::Linux.zenity("title", "msg", "image")
68
+ end
69
+
70
+ def test_has_zenity?
71
+ AutotestNotification::Linux.expects(:system).with('which zenity > /dev/null 2>&1')
72
+ AutotestNotification::Linux.has_zenity?
73
+ end
74
+
75
+ def test_has_notify?
76
+ AutotestNotification::Linux.expects(:system).with('which notify-send > /dev/null 2>&1')
77
+ AutotestNotification::Linux.has_notify?
78
+ end
79
+
80
+ def test_has_kdialog?
81
+ AutotestNotification::Linux.expects(:system).with('which kdialog > /dev/null 2>&1')
82
+ AutotestNotification::Linux.has_kdialog?
83
+ end
84
+
85
+ private
86
+
87
+ def verify_notify(method)
88
+ AutotestNotification::Linux.expects(method).returns("title", "msg", "image", 1)
89
+ AutotestNotification::Linux.notify("title", "msg", "image", 1, 1)
90
+ end
91
+ end
@@ -0,0 +1,78 @@
1
+ require File.dirname(__FILE__) + '/../test_helper.rb'
2
+
3
+ class TestMac < Test::Unit::TestCase
4
+
5
+ def setup
6
+ AutotestNotification.const_set :DOOM_EDITION, false
7
+ AutotestNotification.const_set :SPEAKING, false
8
+ AutotestNotification.const_set :STICKY, false
9
+ AutotestNotification.const_set :BUUF, false
10
+ AutotestNotification.const_set :SUCCESS_SOUND, ''
11
+ AutotestNotification.const_set :FAILURE_SOUND, ''
12
+ AutotestNotification::Mac.stubs(:system)
13
+ end
14
+
15
+ def test_notify_without_voice
16
+ AutotestNotification.const_set :SPEAKING, false
17
+ AutotestNotification::Mac.expects(:system).with("growlnotify -n autotest --image image -p 0 -m 'msg' -t title")
18
+ AutotestNotification::Mac.notify("title", "msg", "image", 1)
19
+ end
20
+
21
+ def test_notify_with_voice
22
+ AutotestNotification.const_set :SPEAKING, true
23
+ AutotestNotification::Mac.expects(:system).with("growlnotify -n autotest --image image -p 0 -m 'msg' -t title")
24
+ AutotestNotification::Mac.expects(:system).with("say 1 test failed.")
25
+ AutotestNotification::Mac.notify("title", "msg", "image", 1, 1)
26
+ end
27
+
28
+ def test_notify_with_pending
29
+ AutotestNotification.const_set :PENDING, true
30
+ AutotestNotification::Mac.expects(:system).with("growlnotify -n autotest --image image -p 0 -m 'msg' -t title")
31
+ AutotestNotification::Mac.notify("title", "msg", "image", 1)
32
+ end
33
+
34
+ def test_notify_with_sticky
35
+ AutotestNotification.const_set :STICKY, true
36
+ AutotestNotification::Mac.expects(:system).with("growlnotify -n autotest --image image -s -p 0 -m 'msg' -t title")
37
+ AutotestNotification::Mac.notify("title", "msg", "image", 1, 1)
38
+ end
39
+
40
+ def test_success_sound_is_played_when_specified_and_test_success
41
+ AutotestNotification.const_set :SUCCESS_SOUND, sound_path
42
+ AutotestNotification::Mac.expects(:play).with(sound_path)
43
+ AutotestNotification::Mac.notify("title", "msg", "image", 1, 0)
44
+ end
45
+
46
+ def test_failure_sound_is_played_when_specified_and_tests_fail
47
+ AutotestNotification.const_set :FAILURE_SOUND, sound_path
48
+ AutotestNotification::Mac.expects(:play).with(sound_path)
49
+ AutotestNotification::Mac.notify("title", "msg", "image", 1, 1)
50
+ end
51
+
52
+ def test_failure_sound_is_not_played_when_tests_success
53
+ AutotestNotification.const_set :FAILURE_SOUND, sound_path
54
+ AutotestNotification::Mac.expects(:play).with(sound_path).times(0)
55
+ AutotestNotification::Mac.notify("title", "msg", "image", 1, 0)
56
+ end
57
+
58
+ def test_success_sound_is_not_played_when_tests_fail
59
+ AutotestNotification.const_set :SUCCESS_SOUND, sound_path
60
+ AutotestNotification::Mac.expects(:play).with(sound_path).times(0)
61
+ AutotestNotification::Mac.notify("title", "msg", "image", 1, 1)
62
+ end
63
+
64
+ def test_play_method_exists
65
+ # this should be testing if playsound is being called
66
+ assert_respond_to AutotestNotification::Mac, :play
67
+ end
68
+
69
+ def test_notify_with_buuf
70
+ AutotestNotification.const_set :BUUF, true
71
+ AutotestNotification::Mac.expects(:system).with("growlnotify -n autotest --image image -p 0 -m 'msg' -t title")
72
+ AutotestNotification::Mac.notify("title", "msg", "image", 1, 1)
73
+ end
74
+ end
75
+
76
+ def sound_path
77
+ "#{File.expand_path(File.dirname(__FILE__) + "/../../sounds/doom/")}/1.wav"
78
+ end
@@ -0,0 +1,12 @@
1
+ require File.dirname(__FILE__) + '/../test_helper.rb'
2
+
3
+ class Snarl
4
+ end
5
+
6
+ class TestWindows < Test::Unit::TestCase
7
+
8
+ def test_notify
9
+ Snarl.expects(:show_message).with("title", "msg", "image")
10
+ AutotestNotification::Windows.notify("title", "msg", "image")
11
+ end
12
+ end
@@ -0,0 +1,44 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class TestAutotestNotification < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @title = "title"
7
+ @msg = "message"
8
+ @image = "image"
9
+ @priority = 0
10
+ @total = 0
11
+ @failures = 0
12
+
13
+ %w( DOOM_EDITION SPEAKING STICKY BUUF ).each do |c|
14
+ AutotestNotification.const_set(c.to_sym, false) unless AutotestNotification.const_defined?(c.to_sym)
15
+ end
16
+ end
17
+
18
+ def test_notify_when_os_is_cygwin
19
+ AutotestNotification::Cygwin.expects(:notify).with(@title, @msg, @image, @total, @failures)
20
+ verify_to("cygwin")
21
+ end
22
+
23
+ def test_notify_when_os_is_windows
24
+ AutotestNotification::Windows.expects(:notify).with(@title, @msg, @image)
25
+ verify_to("mswin")
26
+ end
27
+
28
+ def test_notify_when_os_is_linux
29
+ AutotestNotification::Linux.expects(:notify).with(@title, @msg, @image, @total, @failures, @priority)
30
+ verify_to("linux")
31
+ end
32
+
33
+ def test_notify_when_os_is_mac
34
+ AutotestNotification::Mac.expects(:notify).with(@title, @msg, @image, @total, @failures, @priority)
35
+ verify_to("darwin")
36
+ end
37
+
38
+ private
39
+
40
+ def verify_to(so)
41
+ AutotestNotification.const_set :RUBY_PLATFORM, so
42
+ AutotestNotification.notify(@title, @msg, @image, @total, @failures, @priority)
43
+ end
44
+ end
@@ -0,0 +1,25 @@
1
+ require "test/unit"
2
+ require "rubygems"
3
+ require 'autotest'
4
+ require "mocha"
5
+ require File.dirname(__FILE__) + '/../lib/autotest_notification' unless defined?(AutotestNotification)
6
+
7
+ class Test::Unit::TestCase
8
+ def turn_methods_public(classe, method_name = nil)
9
+ if method_name
10
+ classe.class_eval do
11
+ public method_name
12
+ end
13
+ else
14
+ turn_all_methods_public classe
15
+ end
16
+ end
17
+ def turn_all_methods_public(classe)
18
+ classe.class_eval do
19
+ private_instance_methods.each { |instance_method| public instance_method }
20
+ private_methods.each { |method| public_class_method method }
21
+ protected_instance_methods.each { |instance_method| public instance_method }
22
+ protected_methods.each { |method| public_class_method method }
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,86 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
+ <title>
8
+ autotest_notification
9
+ </title>
10
+ <script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
11
+ <style>
12
+
13
+ </style>
14
+ <script type="text/javascript">
15
+ window.onload = function() {
16
+ settings = {
17
+ tl: { radius: 10 },
18
+ tr: { radius: 10 },
19
+ bl: { radius: 10 },
20
+ br: { radius: 10 },
21
+ antiAlias: true,
22
+ autoPad: true,
23
+ validTags: ["div"]
24
+ }
25
+ var versionBox = new curvyCorners(settings, document.getElementById("version"));
26
+ versionBox.applyCornersToAll();
27
+ }
28
+ </script>
29
+ </head>
30
+ <body>
31
+ <div id="main">
32
+
33
+ <h1>autotest_notification</h1>
34
+ <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/autotest_notification"; return false'>
35
+ <p>Get Version</p>
36
+ <a href="http://rubyforge.org/projects/autotest_notification" class="numbers">1.5.0</a>
37
+ </div>
38
+ <h1>&amp;#x2192; &#8216;autotest_notification&#8217;</h1>
39
+ <h2>What</h2>
40
+ <h2>Installing</h2>
41
+ <p><pre class='syntax'><span class="ident">sudo</span> <span class="ident">gem</span> <span class="ident">install</span> <span class="ident">autotest_notification</span></pre></p>
42
+ <h2>The basics</h2>
43
+ <h2>Demonstration of usage</h2>
44
+ <h2>Forum</h2>
45
+ <p><a href="http://groups.google.com/group/autotest_notification">http://groups.google.com/group/autotest_notification</a></p>
46
+ <p><span class="caps">TODO</span> &#8211; create Google Group &#8211; autotest_notification</p>
47
+ <h2>How to submit patches</h2>
48
+ <p>Read the <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/">8 steps for fixing other people&#8217;s code</a> and for section <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups">8b: Submit patch to Google Groups</a>, use the Google Group above.</p>
49
+ <p><span class="caps">TODO</span> &#8211; pick <span class="caps">SVN</span> or Git instructions</p>
50
+ <p>The trunk repository is <code>svn://rubyforge.org/var/svn/autotest_notification/trunk</code> for anonymous access.</p>
51
+ <p><span class="caps">OOOORRRR</span></p>
52
+ <p>You can fetch the source from either:</p>
53
+ <ul>
54
+ <li>rubyforge: <span class="caps">MISSING</span> IN <span class="caps">ACTION</span></li>
55
+ </ul>
56
+ <p><span class="caps">TODO</span> &#8211; You can not created a RubyForge project, OR have not run <code>rubyforge config</code><br />
57
+ yet to refresh your local rubyforge data with this projects&#8217; id information.</p>
58
+ <p>When you do this, this message will magically disappear!</p>
59
+ <p>Or you can hack website/index.txt and make it all go away!!</p>
60
+ <ul>
61
+ <li>github: <a href="http://github.com/GITHUB_USERNAME/autotest_notification/tree/master">http://github.com/GITHUB_USERNAME/autotest_notification/tree/master</a></li>
62
+ </ul>
63
+ <pre>git clone git://github.com/GITHUB_USERNAME/autotest_notification.git</pre>
64
+ <p><span class="caps">TODO</span> &#8211; add &#8220;github_username: username&#8221; to ~/.rubyforge/user-config.yml and newgem will reuse it for future projects.</p>
65
+ <ul>
66
+ <li>gitorious: <a href="git://gitorious.org/autotest_notification/mainline.git">git://gitorious.org/autotest_notification/mainline.git</a></li>
67
+ </ul>
68
+ <pre>git clone git://gitorious.org/autotest_notification/mainline.git</pre>
69
+ <h3>Build and test instructions</h3>
70
+ <pre>cd autotest_notification
71
+ rake test
72
+ rake install_gem</pre>
73
+ <h2>License</h2>
74
+ <p>This code is free to use under the terms of the <span class="caps">MIT</span> license.</p>
75
+ <h2>Contact</h2>
76
+ <p>Comments are welcome. Send an email to <a href="mailto:eduardobrando@gmail.com">Carlos Brando</a> via the <a href="http://groups.google.com/group/autotest_notification">forum</a></p>
77
+ <p class="coda">
78
+ <a href="FIXME email">FIXME full name</a>, 5th October 2008<br>
79
+ Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
80
+ </p>
81
+ </div>
82
+
83
+ <!-- insert site tracking codes here, like Google Urchin -->
84
+
85
+ </body>
86
+ </html>
data/website/index.txt ADDED
@@ -0,0 +1,83 @@
1
+ h1. autotest_notification
2
+
3
+ h1. &#x2192; 'autotest_notification'
4
+
5
+
6
+ h2. What
7
+
8
+
9
+ h2. Installing
10
+
11
+ <pre syntax="ruby">sudo gem install autotest_notification</pre>
12
+
13
+ h2. The basics
14
+
15
+
16
+ h2. Demonstration of usage
17
+
18
+
19
+
20
+ h2. Forum
21
+
22
+ "http://groups.google.com/group/autotest_notification":http://groups.google.com/group/autotest_notification
23
+
24
+ TODO - create Google Group - autotest_notification
25
+
26
+ h2. How to submit patches
27
+
28
+ Read the "8 steps for fixing other people's code":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/ and for section "8b: Submit patch to Google Groups":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups, use the Google Group above.
29
+
30
+ TODO - pick SVN or Git instructions
31
+
32
+ The trunk repository is <code>svn://rubyforge.org/var/svn/autotest_notification/trunk</code> for anonymous access.
33
+
34
+ OOOORRRR
35
+
36
+ You can fetch the source from either:
37
+
38
+ <% if rubyforge_project_id %>
39
+
40
+ * rubyforge: "http://rubyforge.org/scm/?group_id=<%= rubyforge_project_id %>":http://rubyforge.org/scm/?group_id=<%= rubyforge_project_id %>
41
+
42
+ <pre>git clone git://rubyforge.org/autotest_notification.git</pre>
43
+
44
+ <% else %>
45
+
46
+ * rubyforge: MISSING IN ACTION
47
+
48
+ TODO - You can not created a RubyForge project, OR have not run <code>rubyforge config</code>
49
+ yet to refresh your local rubyforge data with this projects' id information.
50
+
51
+ When you do this, this message will magically disappear!
52
+
53
+ Or you can hack website/index.txt and make it all go away!!
54
+
55
+ <% end %>
56
+
57
+ * github: "http://github.com/GITHUB_USERNAME/autotest_notification/tree/master":http://github.com/GITHUB_USERNAME/autotest_notification/tree/master
58
+
59
+ <pre>git clone git://github.com/GITHUB_USERNAME/autotest_notification.git</pre>
60
+
61
+
62
+ TODO - add "github_username: username" to ~/.rubyforge/user-config.yml and newgem will reuse it for future projects.
63
+
64
+
65
+ * gitorious: "git://gitorious.org/autotest_notification/mainline.git":git://gitorious.org/autotest_notification/mainline.git
66
+
67
+ <pre>git clone git://gitorious.org/autotest_notification/mainline.git</pre>
68
+
69
+ h3. Build and test instructions
70
+
71
+ <pre>cd autotest_notification
72
+ rake test
73
+ rake install_gem</pre>
74
+
75
+
76
+ h2. License
77
+
78
+ This code is free to use under the terms of the MIT license.
79
+
80
+ h2. Contact
81
+
82
+ Comments are welcome. Send an email to "Carlos Brando":mailto:eduardobrando@gmail.com via the "forum":http://groups.google.com/group/autotest_notification
83
+