ryanbriones-ZenTest 3.11.1
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/History.txt +523 -0
- data/Manifest.txt +69 -0
- data/README.txt +110 -0
- data/Rakefile +68 -0
- data/articles/Article.css +721 -0
- data/articles/getting_started_with_autotest.html +532 -0
- data/articles/how_to_use_zentest.txt +393 -0
- data/bin/autotest +55 -0
- data/bin/multiruby +40 -0
- data/bin/multiruby_setup +68 -0
- data/bin/rails_test_audit +80 -0
- data/bin/unit_diff +38 -0
- data/bin/zentest +28 -0
- data/example.txt +42 -0
- data/example1.rb +7 -0
- data/example2.rb +15 -0
- data/example_dot_autotest.rb +45 -0
- data/lib/autotest.rb +654 -0
- data/lib/autotest/autoupdate.rb +26 -0
- data/lib/autotest/camping.rb +37 -0
- data/lib/autotest/cctray.rb +57 -0
- data/lib/autotest/discover.rb +6 -0
- data/lib/autotest/emacs.rb +35 -0
- data/lib/autotest/email_notify.rb +66 -0
- data/lib/autotest/fixtures.rb +12 -0
- data/lib/autotest/growl.rb +28 -0
- data/lib/autotest/heckle.rb +14 -0
- data/lib/autotest/html_report.rb +31 -0
- data/lib/autotest/jabber_notify.rb +111 -0
- data/lib/autotest/kdenotify.rb +14 -0
- data/lib/autotest/menu.rb +51 -0
- data/lib/autotest/migrate.rb +7 -0
- data/lib/autotest/notify.rb +34 -0
- data/lib/autotest/once.rb +9 -0
- data/lib/autotest/pretty.rb +83 -0
- data/lib/autotest/rails.rb +81 -0
- data/lib/autotest/rcov.rb +22 -0
- data/lib/autotest/redgreen.rb +21 -0
- data/lib/autotest/restart.rb +11 -0
- data/lib/autotest/screen.rb +73 -0
- data/lib/autotest/shame.rb +45 -0
- data/lib/autotest/snarl.rb +51 -0
- data/lib/autotest/timestamp.rb +9 -0
- data/lib/functional_test_matrix.rb +92 -0
- data/lib/multiruby.rb +401 -0
- data/lib/test/rails.rb +295 -0
- data/lib/test/rails/controller_test_case.rb +382 -0
- data/lib/test/rails/functional_test_case.rb +79 -0
- data/lib/test/rails/helper_test_case.rb +64 -0
- data/lib/test/rails/ivar_proxy.rb +31 -0
- data/lib/test/rails/pp_html_document.rb +74 -0
- data/lib/test/rails/rake_tasks.rb +50 -0
- data/lib/test/rails/render_tree.rb +93 -0
- data/lib/test/rails/test_case.rb +28 -0
- data/lib/test/rails/view_test_case.rb +597 -0
- data/lib/test/zentest_assertions.rb +134 -0
- data/lib/unit_diff.rb +259 -0
- data/lib/zentest.rb +566 -0
- data/lib/zentest_mapping.rb +99 -0
- data/test/test_autotest.rb +449 -0
- data/test/test_help.rb +36 -0
- data/test/test_rails_autotest.rb +229 -0
- data/test/test_rails_controller_test_case.rb +58 -0
- data/test/test_rails_helper_test_case.rb +48 -0
- data/test/test_rails_view_test_case.rb +275 -0
- data/test/test_unit_diff.rb +319 -0
- data/test/test_zentest.rb +566 -0
- data/test/test_zentest_assertions.rb +128 -0
- data/test/test_zentest_mapping.rb +222 -0
- metadata +151 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/usr/local/bin/ruby -w
|
|
2
|
+
|
|
3
|
+
module Autotest::Menu
|
|
4
|
+
WINDOZE = /win32/ =~ RUBY_PLATFORM unless defined? WINDOZE
|
|
5
|
+
|
|
6
|
+
if WINDOZE then
|
|
7
|
+
require "Win32API"
|
|
8
|
+
def self.getchar
|
|
9
|
+
Win32API.new("crtdll", "_getch", [], "L").Call
|
|
10
|
+
end
|
|
11
|
+
else
|
|
12
|
+
STTY_SAVE_STATE=`stty -g`
|
|
13
|
+
def self.getchar
|
|
14
|
+
system 'stty raw echo'
|
|
15
|
+
STDIN.getc
|
|
16
|
+
ensure
|
|
17
|
+
system "stty '#{STTY_SAVE_STATE}'"
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def self.menu(choices)
|
|
22
|
+
result = nil
|
|
23
|
+
choices.sort.each do |c, desc|
|
|
24
|
+
puts "#{c.chr}: #{desc}"
|
|
25
|
+
end
|
|
26
|
+
until choices[result]
|
|
27
|
+
print "menu> "
|
|
28
|
+
result = getchar
|
|
29
|
+
print " invalid input" unless choices[result]
|
|
30
|
+
puts
|
|
31
|
+
end
|
|
32
|
+
result
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
Autotest.add_hook(:interrupt) do |at|
|
|
36
|
+
$stderr.puts "menu"
|
|
37
|
+
case menu ?q => "quit", ?c => "continue", ?r => "restart"
|
|
38
|
+
when ?c
|
|
39
|
+
true
|
|
40
|
+
when ?r
|
|
41
|
+
at.reset
|
|
42
|
+
true
|
|
43
|
+
when ?q
|
|
44
|
+
at.wants_to_quit = true
|
|
45
|
+
true
|
|
46
|
+
else
|
|
47
|
+
false
|
|
48
|
+
end
|
|
49
|
+
# puts "you chose #{c.chr}"
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module Autotest::Notify
|
|
2
|
+
def self.notify(title, message, priority='critical')
|
|
3
|
+
icon = if priority == 'critical'
|
|
4
|
+
'dialog-error'
|
|
5
|
+
else
|
|
6
|
+
'dialog-information'
|
|
7
|
+
end
|
|
8
|
+
system "notify-send -u #{priority} -t 10000 -i #{icon} '#{title}' '#{message.inspect}'"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
Autotest.add_hook :red do |at|
|
|
12
|
+
tests = 0
|
|
13
|
+
assertions = 0
|
|
14
|
+
failures = 0
|
|
15
|
+
errors = 0
|
|
16
|
+
at.results.scan(/(\d+) tests, (\d+) assertions, (\d+) failures, (\d+) errors/) do |t, a, f, e|
|
|
17
|
+
tests += t.to_i
|
|
18
|
+
assertions += a.to_i
|
|
19
|
+
failures += f.to_i
|
|
20
|
+
errors += e.to_i
|
|
21
|
+
end
|
|
22
|
+
message = "%d tests, %d assertions, %d failures, %d errors" %
|
|
23
|
+
[tests, assertions, failures, errors]
|
|
24
|
+
notify("Tests Failed", message)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
Autotest.add_hook :green do |at|
|
|
28
|
+
notify("Tests Passed", "Outstanding tests passed", 'low') if at.tainted
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
Autotest.add_hook :all do |at|_hook
|
|
32
|
+
notify("autotest", "Tests have fully passed", 'low')
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# -*- ruby -*-
|
|
2
|
+
|
|
3
|
+
require 'osx/cocoa'
|
|
4
|
+
include Math
|
|
5
|
+
include OSX
|
|
6
|
+
|
|
7
|
+
OSX::NSBundle.bundleWithPath(File.expand_path("~/Library/Frameworks/Aquaterm.framework")).load
|
|
8
|
+
OSX.ns_import :AQTAdapter
|
|
9
|
+
|
|
10
|
+
class Autotest::Pretty
|
|
11
|
+
BLACK = 0
|
|
12
|
+
WHITE = 1
|
|
13
|
+
RED = 2
|
|
14
|
+
GREEN = 3
|
|
15
|
+
GRAY = 4
|
|
16
|
+
|
|
17
|
+
def initialize
|
|
18
|
+
@past = []
|
|
19
|
+
|
|
20
|
+
@adapter = AQTAdapter.alloc.init
|
|
21
|
+
@adapter.openPlotWithIndex 1
|
|
22
|
+
@adapter.setPlotSize([122,122])
|
|
23
|
+
@adapter.setPlotTitle("Autotest Status")
|
|
24
|
+
|
|
25
|
+
@adapter.setColormapEntry_red_green_blue(0, 0.0, 0.0, 0.0) # black
|
|
26
|
+
@adapter.setColormapEntry_red_green_blue(1, 1.0, 1.0, 1.0) # white
|
|
27
|
+
@adapter.setColormapEntry_red_green_blue(2, 1.0, 0.0, 0.0) # red
|
|
28
|
+
@adapter.setColormapEntry_red_green_blue(3, 0.0, 1.0, 0.0) # green
|
|
29
|
+
@adapter.setColormapEntry_red_green_blue(4, 0.7, 0.7, 0.7) # gray
|
|
30
|
+
|
|
31
|
+
draw
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def draw
|
|
35
|
+
@past.shift if @past.size > 100
|
|
36
|
+
|
|
37
|
+
@adapter.takeColorFromColormapEntry(@past.last ? GREEN : RED)
|
|
38
|
+
@adapter.addFilledRect([0, 0, 122, 122])
|
|
39
|
+
|
|
40
|
+
@adapter.takeColorFromColormapEntry(BLACK)
|
|
41
|
+
@adapter.addFilledRect([10, 10, 102, 102])
|
|
42
|
+
|
|
43
|
+
@adapter.takeColorFromColormapEntry(GRAY)
|
|
44
|
+
@adapter.addFilledRect([11, 11, 100, 100])
|
|
45
|
+
|
|
46
|
+
@adapter.takeColorFromColormapEntry(0)
|
|
47
|
+
|
|
48
|
+
@past.each_with_index do |passed,i|
|
|
49
|
+
x = i % 10
|
|
50
|
+
y = i / 10
|
|
51
|
+
|
|
52
|
+
@adapter.takeColorFromColormapEntry(passed ? GREEN : RED)
|
|
53
|
+
@adapter.addFilledRect([x*10+11, y*10+11, 10, 10])
|
|
54
|
+
end
|
|
55
|
+
@adapter.renderPlot
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def pass
|
|
59
|
+
@past.push true
|
|
60
|
+
draw
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def fail
|
|
64
|
+
@past.push false
|
|
65
|
+
draw
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def close
|
|
69
|
+
@adapter.closePlot
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
unless $TESTING then
|
|
74
|
+
board = Autotest::Pretty.new
|
|
75
|
+
|
|
76
|
+
Autotest.add_hook :red do |at|
|
|
77
|
+
board.fail unless $TESTING
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
Autotest.add_hook :green do |at|
|
|
81
|
+
board.pass unless $TESTING
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
require 'autotest'
|
|
2
|
+
|
|
3
|
+
class Autotest::Rails < Autotest
|
|
4
|
+
|
|
5
|
+
def initialize # :nodoc:
|
|
6
|
+
super
|
|
7
|
+
|
|
8
|
+
add_exception %r%^\./(?:db|doc|log|public|script|tmp|vendor)%
|
|
9
|
+
|
|
10
|
+
clear_mappings
|
|
11
|
+
|
|
12
|
+
self.add_mapping(/^lib\/.*\.rb$/) do |filename, _|
|
|
13
|
+
impl = File.basename(filename, '.rb')
|
|
14
|
+
files_matching %r%^test/unit/#{impl}_test.rb$%
|
|
15
|
+
# TODO: (unit|functional|integration) maybe?
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
add_mapping %r%^test/fixtures/(.*)s.yml% do |_, m|
|
|
19
|
+
["test/unit/#{m[1]}_test.rb",
|
|
20
|
+
"test/controllers/#{m[1]}_controller_test.rb",
|
|
21
|
+
"test/views/#{m[1]}_view_test.rb",
|
|
22
|
+
"test/functional/#{m[1]}_controller_test.rb"]
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
add_mapping %r%^test/(unit|integration|controllers|views|functional)/.*rb$% do |filename, _|
|
|
26
|
+
filename
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
add_mapping %r%^app/models/(.*)\.rb$% do |_, m|
|
|
30
|
+
"test/unit/#{m[1]}_test.rb"
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
add_mapping %r%^app/helpers/application_helper.rb% do
|
|
34
|
+
files_matching %r%^test/(views|functional)/.*_test\.rb$%
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
add_mapping %r%^app/helpers/(.*)_helper.rb% do |_, m|
|
|
38
|
+
if m[1] == "application" then
|
|
39
|
+
files_matching %r%^test/(views|functional)/.*_test\.rb$%
|
|
40
|
+
else
|
|
41
|
+
["test/views/#{m[1]}_view_test.rb",
|
|
42
|
+
"test/functional/#{m[1]}_controller_test.rb"]
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
add_mapping %r%^app/views/(.*)/% do |_, m|
|
|
47
|
+
["test/views/#{m[1]}_view_test.rb",
|
|
48
|
+
"test/functional/#{m[1]}_controller_test.rb"]
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
add_mapping %r%^app/controllers/(.*)\.rb$% do |_, m|
|
|
52
|
+
if m[1] == "application" then
|
|
53
|
+
files_matching %r%^test/(controllers|views|functional)/.*_test\.rb$%
|
|
54
|
+
else
|
|
55
|
+
["test/controllers/#{m[1]}_test.rb",
|
|
56
|
+
"test/functional/#{m[1]}_test.rb"]
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
add_mapping %r%^app/views/layouts/% do
|
|
61
|
+
"test/views/layouts_view_test.rb"
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
add_mapping %r%^config/routes.rb$% do # FIX:
|
|
65
|
+
files_matching %r%^test/(controllers|views|functional)/.*_test\.rb$%
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
add_mapping %r%^test/test_helper.rb|config/((boot|environment(s/test)?).rb|database.yml)% do
|
|
69
|
+
files_matching %r%^test/(unit|controllers|views|functional)/.*_test\.rb$%
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# Convert the pathname s to the name of class.
|
|
74
|
+
def path_to_classname(s)
|
|
75
|
+
sep = File::SEPARATOR
|
|
76
|
+
f = s.sub(/^test#{sep}((unit|functional|integration|views|controllers|helpers)#{sep})?/, '').sub(/\.rb$/, '').split(sep)
|
|
77
|
+
f = f.map { |path| path.split(/_/).map { |seg| seg.capitalize }.join }
|
|
78
|
+
f = f.map { |path| path =~ /Test$/ ? path : "#{path}Test" }
|
|
79
|
+
f.join('::')
|
|
80
|
+
end
|
|
81
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Autotest::RCov
|
|
2
|
+
@@command, @@pattern = "rcov", "test/*.rb"
|
|
3
|
+
|
|
4
|
+
def self.command= o
|
|
5
|
+
@@command = o
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def self.pattern= o
|
|
9
|
+
@@pattern = o
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
Autotest.add_hook :all_good do |at|
|
|
13
|
+
system "rake #{@@command} PATTERN=#{@@pattern}"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
Autotest.add_hook :initialize do |at|
|
|
17
|
+
at.add_exception 'coverage'
|
|
18
|
+
at.add_exception 'coverage.info'
|
|
19
|
+
false
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# -*- ruby -*-
|
|
2
|
+
|
|
3
|
+
# special thanks to Pat Eyler, Sean Carley, and Rob Sanheim
|
|
4
|
+
# and to Peter Havens for rspec patches
|
|
5
|
+
module Autotest::RedGreen
|
|
6
|
+
BAR = "=" * 78
|
|
7
|
+
REDCODE = 31
|
|
8
|
+
GREENCODE = 32
|
|
9
|
+
|
|
10
|
+
Autotest.add_hook :ran_command do |at|
|
|
11
|
+
green = case at.results.last
|
|
12
|
+
when /^.* (\d+) failures, (\d+) errors$/ # Test::Unit
|
|
13
|
+
($1 == "0" and $2 == "0")
|
|
14
|
+
when /^\d+\s+examples?,\s+(\d+)\s+failure/ # RSpec
|
|
15
|
+
($1 == "0")
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
code = green ? GREENCODE : REDCODE
|
|
19
|
+
puts "\e[#{ code }m#{ BAR }\e[0m\n\n" unless green.nil?
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
##
|
|
2
|
+
# Autotest::Screen is test result notify GNU Screen's statusline.
|
|
3
|
+
#
|
|
4
|
+
# === screenshots
|
|
5
|
+
# * <img src="http://f.hatena.ne.jp/images/fotolife/s/secondlife/20061109/20061109015543.png" />
|
|
6
|
+
# * <img src="http://f.hatena.ne.jp/images/fotolife/s/secondlife/20061109/20061109015522.png" />
|
|
7
|
+
#
|
|
8
|
+
# == SYNOPSIS
|
|
9
|
+
# require 'autotest/screen'
|
|
10
|
+
# # Autotest::Screen.statusline = '%H %`%-w%{=b bw}%n %t%{-}%+w (your statusline)'
|
|
11
|
+
#
|
|
12
|
+
|
|
13
|
+
class Autotest::Screen
|
|
14
|
+
DEFAULT_STATUSLINE = '%H %`%-w%{=b bw}%n %t%{-}%+w'
|
|
15
|
+
DEFAULT_SCREEN_CMD = 'screen'
|
|
16
|
+
|
|
17
|
+
SCREEN_COLOR = {
|
|
18
|
+
:black => 'dd',
|
|
19
|
+
:green => 'gk',
|
|
20
|
+
:red => 'rw',
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
def self.message(msg, color = :black)
|
|
24
|
+
col = SCREEN_COLOR[color]
|
|
25
|
+
msg = %Q[ %{=b #{col}} #{msg} %{-}]
|
|
26
|
+
send_cmd(msg)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.clear
|
|
30
|
+
send_cmd('')
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def self.run_screen_session?
|
|
34
|
+
str = `#{screen_cmd} -ls`
|
|
35
|
+
str.match(/(\d+) Socket/) && ($1.to_i > 0)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def self.execute?
|
|
39
|
+
!($TESTING || !run_screen_session?)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
@statusline, @screen_cmd = nil
|
|
43
|
+
def self.statusline; @statusline || DEFAULT_STATUSLINE.dup; end
|
|
44
|
+
def self.statusline=(a); @statusline = a; end
|
|
45
|
+
def self.screen_cmd; @screen_cmd || DEFAULT_SCREEN_CMD.dup; end
|
|
46
|
+
def self.screen_cmd=(a); @screen_cmd = a; end
|
|
47
|
+
|
|
48
|
+
def self.send_cmd(msg)
|
|
49
|
+
cmd = %(#{screen_cmd} -X eval 'hardstatus alwayslastline "#{(statusline + msg).gsub('"', '\"')}"') #' stupid ruby-mode
|
|
50
|
+
system cmd
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
Autotest.add_hook :run do |at|
|
|
54
|
+
message 'Run Tests' if execute?
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
Autotest.add_hook :quit do |at|
|
|
58
|
+
clear if execute?
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
Autotest.add_hook :ran_command do |at|
|
|
62
|
+
if execute? then
|
|
63
|
+
output = at.results.join
|
|
64
|
+
failed = output.scan(/^\s+\d+\) (?:Failure|Error):\n(.*?)\((.*?)\)/)
|
|
65
|
+
if failed.size == 0 then
|
|
66
|
+
message "All Green", :green
|
|
67
|
+
else
|
|
68
|
+
f,e = failed.partition { |s| s =~ /Failure/ }
|
|
69
|
+
message "Red F:#{f.size} E:#{e.size}", :red
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require 'code_statistics'
|
|
2
|
+
require 'rbosa'
|
|
3
|
+
|
|
4
|
+
module Autotest::Shame
|
|
5
|
+
@@chat_app = :adium
|
|
6
|
+
|
|
7
|
+
def self.chat_app= o
|
|
8
|
+
@@chat_app = o
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Until the rails team learns how to write modular code... I must steal :/
|
|
12
|
+
STATS_DIRECTORIES = [
|
|
13
|
+
%w(Controllers app/controllers),
|
|
14
|
+
%w(Helpers app/helpers),
|
|
15
|
+
%w(Models app/models),
|
|
16
|
+
%w(Libraries lib/),
|
|
17
|
+
%w(APIs app/apis),
|
|
18
|
+
%w(Components components),
|
|
19
|
+
%w(Integration\ tests test/integration),
|
|
20
|
+
%w(Functional\ tests test/functional),
|
|
21
|
+
%w(Unit\ tests test/unit),
|
|
22
|
+
].select { |name, dir| File.directory?(dir) }
|
|
23
|
+
|
|
24
|
+
def self.shame
|
|
25
|
+
stats = CodeStatistics.new(*STATS_DIRECTORIES)
|
|
26
|
+
code = stats.send :calculate_code
|
|
27
|
+
tests = stats.send :calculate_tests
|
|
28
|
+
msg = "Code To Test Ratio: 1:#{sprintf("%.2f", tests.to_f/code)}"
|
|
29
|
+
$-w = ! $-w
|
|
30
|
+
case @@chat_app
|
|
31
|
+
when :adium then
|
|
32
|
+
OSA.app('Adium').adium_controller.my_status_message = msg
|
|
33
|
+
when :ichat then
|
|
34
|
+
OSA.app('ichat').status_message = msg
|
|
35
|
+
else
|
|
36
|
+
raise "huh?"
|
|
37
|
+
end
|
|
38
|
+
$-w = ! $-w
|
|
39
|
+
$stderr.puts "Status set to: #{msg.inspect}"
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
Autotest.add_hook(:all_good) do |autotest|
|
|
43
|
+
shame
|
|
44
|
+
end
|
|
45
|
+
end
|