multimethod 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.svn/README.txt +2 -0
- data/.svn/empty-file +0 -0
- data/.svn/entries +68 -0
- data/.svn/format +1 -0
- data/.svn/text-base/ChangeLog.svn-base +3 -0
- data/.svn/text-base/Manifest.txt.svn-base +54 -0
- data/.svn/text-base/README.txt.svn-base +40 -0
- data/.svn/text-base/Rakefile.svn-base +132 -0
- data/.svn/text-base/Releases.txt.svn-base +7 -0
- data/ChangeLog +3 -0
- data/Manifest.txt +54 -0
- data/README.txt +40 -0
- data/Rakefile +132 -0
- data/Releases.txt +7 -0
- data/examples/.svn/README.txt +2 -0
- data/examples/.svn/empty-file +0 -0
- data/examples/.svn/entries +22 -0
- data/examples/.svn/format +1 -0
- data/examples/.svn/props/ex1.rb.svn-work +5 -0
- data/examples/ex1.rb +26 -0
- data/lib/.svn/README.txt +2 -0
- data/lib/.svn/empty-file +0 -0
- data/lib/.svn/entries +24 -0
- data/lib/.svn/format +1 -0
- data/lib/.svn/text-base/multimethod.rb.svn-base +8 -0
- data/lib/multimethod.rb +8 -0
- data/lib/multimethod/.svn/README.txt +2 -0
- data/lib/multimethod/.svn/empty-file +0 -0
- data/lib/multimethod/.svn/entries +53 -0
- data/lib/multimethod/.svn/format +1 -0
- data/lib/multimethod/.svn/text-base/core_extensions.rb.svn-base +38 -0
- data/lib/multimethod/.svn/text-base/method.rb.svn-base +232 -0
- data/lib/multimethod/.svn/text-base/multimethod.rb.svn-base +171 -0
- data/lib/multimethod/.svn/text-base/parameter.rb.svn-base +64 -0
- data/lib/multimethod/.svn/text-base/table.rb.svn-base +99 -0
- data/lib/multimethod/core_extensions.rb +38 -0
- data/lib/multimethod/method.rb +232 -0
- data/lib/multimethod/multimethod.rb +171 -0
- data/lib/multimethod/parameter.rb +64 -0
- data/lib/multimethod/table.rb +99 -0
- data/test/.svn/README.txt +2 -0
- data/test/.svn/empty-file +0 -0
- data/test/.svn/entries +53 -0
- data/test/.svn/format +1 -0
- data/test/.svn/text-base/method_test.rb.svn-base +89 -0
- data/test/.svn/text-base/multimethod_test.rb.svn-base +92 -0
- data/test/.svn/text-base/parameter_test.rb.svn-base +31 -0
- data/test/.svn/text-base/test_base.rb.svn-base +25 -0
- data/test/.svn/text-base/usage_test.rb.svn-base +146 -0
- data/test/method_test.rb +89 -0
- data/test/multimethod_test.rb +92 -0
- data/test/parameter_test.rb +31 -0
- data/test/test_base.rb +25 -0
- data/test/usage_test.rb +146 -0
- metadata +108 -0
data/.svn/README.txt
ADDED
data/.svn/empty-file
ADDED
File without changes
|
data/.svn/entries
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<wc-entries
|
3
|
+
xmlns="svn:">
|
4
|
+
<entry
|
5
|
+
committed-rev="2"
|
6
|
+
name=""
|
7
|
+
committed-date="2006-11-21T15:54:09.187498Z"
|
8
|
+
url="svn+ssh://rubyforge.org/var/svn/multimethod/multimethod/trunk"
|
9
|
+
last-author="kstephens"
|
10
|
+
kind="dir"
|
11
|
+
uuid="4bb4d955-fa15-4b0b-b2b9-8313ce201c60"
|
12
|
+
repos="svn+ssh://rubyforge.org/var/svn/multimethod"
|
13
|
+
revision="2"/>
|
14
|
+
<entry
|
15
|
+
name="test"
|
16
|
+
kind="dir"/>
|
17
|
+
<entry
|
18
|
+
committed-rev="3"
|
19
|
+
name="Releases.txt"
|
20
|
+
text-time="2006-11-21T07:01:58.000000Z"
|
21
|
+
committed-date="2006-11-21T15:59:22.761488Z"
|
22
|
+
checksum="b9cd76bec13b02af840a565ab5cc3a3d"
|
23
|
+
last-author="kstephens"
|
24
|
+
kind="file"
|
25
|
+
revision="3"/>
|
26
|
+
<entry
|
27
|
+
committed-rev="5"
|
28
|
+
name="Rakefile"
|
29
|
+
text-time="2006-11-21T16:55:41.000000Z"
|
30
|
+
committed-date="2006-11-21T16:56:07.893949Z"
|
31
|
+
checksum="fcadec21285b011a5790b90b570d8989"
|
32
|
+
last-author="kstephens"
|
33
|
+
kind="file"
|
34
|
+
revision="5"/>
|
35
|
+
<entry
|
36
|
+
committed-rev="4"
|
37
|
+
name="Manifest.txt"
|
38
|
+
text-time="2006-11-21T16:23:21.000000Z"
|
39
|
+
committed-date="2006-11-21T16:23:41.780783Z"
|
40
|
+
checksum="6ab52f14dd072e0a3e22cae6d6519c48"
|
41
|
+
last-author="kstephens"
|
42
|
+
kind="file"
|
43
|
+
revision="4"/>
|
44
|
+
<entry
|
45
|
+
name="lib"
|
46
|
+
kind="dir"/>
|
47
|
+
<entry
|
48
|
+
committed-rev="3"
|
49
|
+
name="ChangeLog"
|
50
|
+
text-time="2006-11-21T05:36:27.000000Z"
|
51
|
+
committed-date="2006-11-21T15:59:22.761488Z"
|
52
|
+
checksum="3b2752e05075e1e7b8834d65c341293a"
|
53
|
+
last-author="kstephens"
|
54
|
+
kind="file"
|
55
|
+
revision="3"/>
|
56
|
+
<entry
|
57
|
+
committed-rev="3"
|
58
|
+
name="README.txt"
|
59
|
+
text-time="2006-11-20T21:47:16.000000Z"
|
60
|
+
committed-date="2006-11-21T15:59:22.761488Z"
|
61
|
+
checksum="c1eedf91cf735e7ba63300a9f03c5452"
|
62
|
+
last-author="kstephens"
|
63
|
+
kind="file"
|
64
|
+
revision="3"/>
|
65
|
+
<entry
|
66
|
+
name="examples"
|
67
|
+
kind="dir"/>
|
68
|
+
</wc-entries>
|
data/.svn/format
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
4
|
@@ -0,0 +1,54 @@
|
|
1
|
+
./.svn/README.txt
|
2
|
+
./.svn/empty-file
|
3
|
+
./.svn/entries
|
4
|
+
./.svn/format
|
5
|
+
./.svn/text-base/ChangeLog.svn-base
|
6
|
+
./.svn/text-base/Manifest.txt.svn-base
|
7
|
+
./.svn/text-base/README.txt.svn-base
|
8
|
+
./.svn/text-base/Rakefile.svn-base
|
9
|
+
./.svn/text-base/Releases.txt.svn-base
|
10
|
+
./ChangeLog
|
11
|
+
./Manifest.txt
|
12
|
+
./README.txt
|
13
|
+
./Rakefile
|
14
|
+
./Releases.txt
|
15
|
+
./examples/.svn/README.txt
|
16
|
+
./examples/.svn/empty-file
|
17
|
+
./examples/.svn/entries
|
18
|
+
./examples/.svn/format
|
19
|
+
./examples/.svn/props/ex1.rb.svn-work
|
20
|
+
./examples/ex1.rb
|
21
|
+
./lib/.svn/README.txt
|
22
|
+
./lib/.svn/empty-file
|
23
|
+
./lib/.svn/entries
|
24
|
+
./lib/.svn/format
|
25
|
+
./lib/.svn/text-base/multimethod.rb.svn-base
|
26
|
+
./lib/multimethod.rb
|
27
|
+
./lib/multimethod/.svn/README.txt
|
28
|
+
./lib/multimethod/.svn/empty-file
|
29
|
+
./lib/multimethod/.svn/entries
|
30
|
+
./lib/multimethod/.svn/format
|
31
|
+
./lib/multimethod/.svn/text-base/core_extensions.rb.svn-base
|
32
|
+
./lib/multimethod/.svn/text-base/method.rb.svn-base
|
33
|
+
./lib/multimethod/.svn/text-base/multimethod.rb.svn-base
|
34
|
+
./lib/multimethod/.svn/text-base/parameter.rb.svn-base
|
35
|
+
./lib/multimethod/.svn/text-base/table.rb.svn-base
|
36
|
+
./lib/multimethod/core_extensions.rb
|
37
|
+
./lib/multimethod/method.rb
|
38
|
+
./lib/multimethod/multimethod.rb
|
39
|
+
./lib/multimethod/parameter.rb
|
40
|
+
./lib/multimethod/table.rb
|
41
|
+
./test/.svn/README.txt
|
42
|
+
./test/.svn/empty-file
|
43
|
+
./test/.svn/entries
|
44
|
+
./test/.svn/format
|
45
|
+
./test/.svn/text-base/method_test.rb.svn-base
|
46
|
+
./test/.svn/text-base/multimethod_test.rb.svn-base
|
47
|
+
./test/.svn/text-base/parameter_test.rb.svn-base
|
48
|
+
./test/.svn/text-base/test_base.rb.svn-base
|
49
|
+
./test/.svn/text-base/usage_test.rb.svn-base
|
50
|
+
./test/method_test.rb
|
51
|
+
./test/multimethod_test.rb
|
52
|
+
./test/parameter_test.rb
|
53
|
+
./test/test_base.rb
|
54
|
+
./test/usage_test.rb
|
@@ -0,0 +1,40 @@
|
|
1
|
+
= Multimethod
|
2
|
+
|
3
|
+
This is the rubyforge.com Multimethod package.
|
4
|
+
|
5
|
+
== Installation
|
6
|
+
|
7
|
+
gem install multimethod
|
8
|
+
|
9
|
+
== Documentation
|
10
|
+
|
11
|
+
"Project Info":http://rubyforge.org/projects/multimethod/
|
12
|
+
|
13
|
+
"API Documentation":http://multimethod.rubyforge.org/
|
14
|
+
|
15
|
+
The RubyForge package multimethod
|
16
|
+
implements multi-method dispatching on argument types.
|
17
|
+
|
18
|
+
See also: ?????http://umleta.com/node/?????
|
19
|
+
|
20
|
+
== Home page
|
21
|
+
|
22
|
+
* {Multimethod Home}[http://multimethod.rubyforge.org]
|
23
|
+
|
24
|
+
== Additional directories
|
25
|
+
|
26
|
+
[./lib/...] the Multimethod library
|
27
|
+
[./test/...] unit and functional test
|
28
|
+
[./examples/...] example programs
|
29
|
+
|
30
|
+
== Credits
|
31
|
+
|
32
|
+
Multimethod was developed by:
|
33
|
+
|
34
|
+
* Kurt Stephens -- ruby-multimethod(at)umleta.com, sponsored by umleta.com
|
35
|
+
|
36
|
+
== Contributors
|
37
|
+
|
38
|
+
Maybe you?
|
39
|
+
|
40
|
+
|
@@ -0,0 +1,132 @@
|
|
1
|
+
# Rakefile for ruby-multimethods -*- ruby -*-
|
2
|
+
# Adapted from RubyGems/Rakefile
|
3
|
+
# upload_package NOT WORKING YET
|
4
|
+
|
5
|
+
#################################################################
|
6
|
+
|
7
|
+
require 'rubygems'
|
8
|
+
require 'hoe'
|
9
|
+
|
10
|
+
PKG_Name = 'Multimethod'
|
11
|
+
PKG_DESCRIPTION = %{Supports Multimethod dispatching.
|
12
|
+
|
13
|
+
For more details, see:
|
14
|
+
|
15
|
+
http://multimethod.rubyforge.org/files/lib/multimethod_rb.html
|
16
|
+
http://multimethod.rubyforge.org/files/README.txt
|
17
|
+
http://multimethod.rubyforge.org/
|
18
|
+
|
19
|
+
}
|
20
|
+
|
21
|
+
#################################################################
|
22
|
+
# Release notes
|
23
|
+
#
|
24
|
+
|
25
|
+
def get_release_notes(relfile = "Releases.txt")
|
26
|
+
|
27
|
+
release = nil
|
28
|
+
notes = [ ]
|
29
|
+
|
30
|
+
File.open(relfile) do |f|
|
31
|
+
while ! f.eof? && line = f.readline
|
32
|
+
if md = /^== Release ([\d\.]+)/i.match(line)
|
33
|
+
release = md[1]
|
34
|
+
notes << line
|
35
|
+
break
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
while ! f.eof? && line = f.readline
|
40
|
+
if md = /^== Release ([\d\.]+)/i.match(line)
|
41
|
+
break
|
42
|
+
end
|
43
|
+
notes << line
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
[ release, notes.join('') ]
|
48
|
+
end
|
49
|
+
|
50
|
+
#################################################################
|
51
|
+
|
52
|
+
PKG_NAME = PKG_Name.gsub(/[a-z][A-Z]/) {|x| "#{x[0,1]}_#{x[1,1]}"}.downcase
|
53
|
+
|
54
|
+
release, release_notes = get_release_notes
|
55
|
+
|
56
|
+
hoe = Hoe.new(PKG_NAME, release) do |p|
|
57
|
+
p.author = 'Kurt Stephens'
|
58
|
+
p.description = PKG_DESCRIPTION
|
59
|
+
p.email = "ruby-#{PKG_NAME}@umleta.com"
|
60
|
+
p.summary = p.description
|
61
|
+
p.changes = release_notes
|
62
|
+
p.url = "http://rubyforge.org/projects/#{PKG_NAME}"
|
63
|
+
|
64
|
+
p.test_globs = ['test/**/*.rb']
|
65
|
+
end
|
66
|
+
|
67
|
+
PKG_VERSION = hoe.version
|
68
|
+
|
69
|
+
#################################################################
|
70
|
+
# Version file
|
71
|
+
#
|
72
|
+
|
73
|
+
def announce(msg='')
|
74
|
+
STDERR.puts msg
|
75
|
+
end
|
76
|
+
|
77
|
+
version_rb = "lib/#{PKG_NAME}/#{PKG_NAME}_version.rb"
|
78
|
+
|
79
|
+
task :update_version do
|
80
|
+
announce "Updating #{PKG_Name} version to #{PKG_VERSION}: #{version_rb}"
|
81
|
+
open(version_rb, "w") do |f|
|
82
|
+
f.puts "# DO NOT EDIT"
|
83
|
+
f.puts "# This file is auto-generated by build scripts."
|
84
|
+
f.puts "# See: rake update_version"
|
85
|
+
f.puts "module #{PKG_Name}"
|
86
|
+
f.puts " #{PKG_Name}Version = '#{PKG_VERSION}'"
|
87
|
+
f.puts "end"
|
88
|
+
end
|
89
|
+
if ENV['RELTEST']
|
90
|
+
announce "Release Task Testing, skipping commiting of new version"
|
91
|
+
else
|
92
|
+
sh %{svn commit -m "Updated to version #{PKG_VERSION}" #{version_rb} Rakefile}
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
task version_rb => :update_version
|
97
|
+
|
98
|
+
# task :test => :update_version
|
99
|
+
|
100
|
+
|
101
|
+
# Misc Tasks ---------------------------------------------------------
|
102
|
+
|
103
|
+
def egrep(pattern)
|
104
|
+
Dir['**/*.rb'].each do |fn|
|
105
|
+
count = 0
|
106
|
+
open(fn) do |f|
|
107
|
+
while line = f.gets
|
108
|
+
count += 1
|
109
|
+
if line =~ pattern
|
110
|
+
puts "#{fn}:#{count}:#{line}"
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
desc "Look for TODO and FIXME tags in the code"
|
118
|
+
task :todo do
|
119
|
+
egrep /#.*(FIXME|TODO|TBD)/
|
120
|
+
end
|
121
|
+
|
122
|
+
desc "Look for Debugging print lines"
|
123
|
+
task :dbg do
|
124
|
+
egrep /\bDBG|\bbreakpoint\b/
|
125
|
+
end
|
126
|
+
|
127
|
+
desc "List all ruby files"
|
128
|
+
task :rubyfiles do
|
129
|
+
puts Dir['**/*.rb'].reject { |fn| fn =~ /^pkg/ }
|
130
|
+
puts Dir['bin/*'].reject { |fn| fn =~ /CVS|.svn|(~$)|(\.rb$)/ }
|
131
|
+
end
|
132
|
+
|
data/ChangeLog
ADDED
data/Manifest.txt
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
./.svn/README.txt
|
2
|
+
./.svn/empty-file
|
3
|
+
./.svn/entries
|
4
|
+
./.svn/format
|
5
|
+
./.svn/text-base/ChangeLog.svn-base
|
6
|
+
./.svn/text-base/Manifest.txt.svn-base
|
7
|
+
./.svn/text-base/README.txt.svn-base
|
8
|
+
./.svn/text-base/Rakefile.svn-base
|
9
|
+
./.svn/text-base/Releases.txt.svn-base
|
10
|
+
./ChangeLog
|
11
|
+
./Manifest.txt
|
12
|
+
./README.txt
|
13
|
+
./Rakefile
|
14
|
+
./Releases.txt
|
15
|
+
./examples/.svn/README.txt
|
16
|
+
./examples/.svn/empty-file
|
17
|
+
./examples/.svn/entries
|
18
|
+
./examples/.svn/format
|
19
|
+
./examples/.svn/props/ex1.rb.svn-work
|
20
|
+
./examples/ex1.rb
|
21
|
+
./lib/.svn/README.txt
|
22
|
+
./lib/.svn/empty-file
|
23
|
+
./lib/.svn/entries
|
24
|
+
./lib/.svn/format
|
25
|
+
./lib/.svn/text-base/multimethod.rb.svn-base
|
26
|
+
./lib/multimethod.rb
|
27
|
+
./lib/multimethod/.svn/README.txt
|
28
|
+
./lib/multimethod/.svn/empty-file
|
29
|
+
./lib/multimethod/.svn/entries
|
30
|
+
./lib/multimethod/.svn/format
|
31
|
+
./lib/multimethod/.svn/text-base/core_extensions.rb.svn-base
|
32
|
+
./lib/multimethod/.svn/text-base/method.rb.svn-base
|
33
|
+
./lib/multimethod/.svn/text-base/multimethod.rb.svn-base
|
34
|
+
./lib/multimethod/.svn/text-base/parameter.rb.svn-base
|
35
|
+
./lib/multimethod/.svn/text-base/table.rb.svn-base
|
36
|
+
./lib/multimethod/core_extensions.rb
|
37
|
+
./lib/multimethod/method.rb
|
38
|
+
./lib/multimethod/multimethod.rb
|
39
|
+
./lib/multimethod/parameter.rb
|
40
|
+
./lib/multimethod/table.rb
|
41
|
+
./test/.svn/README.txt
|
42
|
+
./test/.svn/empty-file
|
43
|
+
./test/.svn/entries
|
44
|
+
./test/.svn/format
|
45
|
+
./test/.svn/text-base/method_test.rb.svn-base
|
46
|
+
./test/.svn/text-base/multimethod_test.rb.svn-base
|
47
|
+
./test/.svn/text-base/parameter_test.rb.svn-base
|
48
|
+
./test/.svn/text-base/test_base.rb.svn-base
|
49
|
+
./test/.svn/text-base/usage_test.rb.svn-base
|
50
|
+
./test/method_test.rb
|
51
|
+
./test/multimethod_test.rb
|
52
|
+
./test/parameter_test.rb
|
53
|
+
./test/test_base.rb
|
54
|
+
./test/usage_test.rb
|
data/README.txt
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
= Multimethod
|
2
|
+
|
3
|
+
This is the rubyforge.com Multimethod package.
|
4
|
+
|
5
|
+
== Installation
|
6
|
+
|
7
|
+
gem install multimethod
|
8
|
+
|
9
|
+
== Documentation
|
10
|
+
|
11
|
+
"Project Info":http://rubyforge.org/projects/multimethod/
|
12
|
+
|
13
|
+
"API Documentation":http://multimethod.rubyforge.org/
|
14
|
+
|
15
|
+
The RubyForge package multimethod
|
16
|
+
implements multi-method dispatching on argument types.
|
17
|
+
|
18
|
+
See also: ?????http://umleta.com/node/?????
|
19
|
+
|
20
|
+
== Home page
|
21
|
+
|
22
|
+
* {Multimethod Home}[http://multimethod.rubyforge.org]
|
23
|
+
|
24
|
+
== Additional directories
|
25
|
+
|
26
|
+
[./lib/...] the Multimethod library
|
27
|
+
[./test/...] unit and functional test
|
28
|
+
[./examples/...] example programs
|
29
|
+
|
30
|
+
== Credits
|
31
|
+
|
32
|
+
Multimethod was developed by:
|
33
|
+
|
34
|
+
* Kurt Stephens -- ruby-multimethod(at)umleta.com, sponsored by umleta.com
|
35
|
+
|
36
|
+
== Contributors
|
37
|
+
|
38
|
+
Maybe you?
|
39
|
+
|
40
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,132 @@
|
|
1
|
+
# Rakefile for ruby-multimethods -*- ruby -*-
|
2
|
+
# Adapted from RubyGems/Rakefile
|
3
|
+
# upload_package NOT WORKING YET
|
4
|
+
|
5
|
+
#################################################################
|
6
|
+
|
7
|
+
require 'rubygems'
|
8
|
+
require 'hoe'
|
9
|
+
|
10
|
+
PKG_Name = 'Multimethod'
|
11
|
+
PKG_DESCRIPTION = %{Supports Multimethod dispatching.
|
12
|
+
|
13
|
+
For more details, see:
|
14
|
+
|
15
|
+
http://multimethod.rubyforge.org/files/lib/multimethod_rb.html
|
16
|
+
http://multimethod.rubyforge.org/files/README.txt
|
17
|
+
http://multimethod.rubyforge.org/
|
18
|
+
|
19
|
+
}
|
20
|
+
|
21
|
+
#################################################################
|
22
|
+
# Release notes
|
23
|
+
#
|
24
|
+
|
25
|
+
def get_release_notes(relfile = "Releases.txt")
|
26
|
+
|
27
|
+
release = nil
|
28
|
+
notes = [ ]
|
29
|
+
|
30
|
+
File.open(relfile) do |f|
|
31
|
+
while ! f.eof? && line = f.readline
|
32
|
+
if md = /^== Release ([\d\.]+)/i.match(line)
|
33
|
+
release = md[1]
|
34
|
+
notes << line
|
35
|
+
break
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
while ! f.eof? && line = f.readline
|
40
|
+
if md = /^== Release ([\d\.]+)/i.match(line)
|
41
|
+
break
|
42
|
+
end
|
43
|
+
notes << line
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
[ release, notes.join('') ]
|
48
|
+
end
|
49
|
+
|
50
|
+
#################################################################
|
51
|
+
|
52
|
+
PKG_NAME = PKG_Name.gsub(/[a-z][A-Z]/) {|x| "#{x[0,1]}_#{x[1,1]}"}.downcase
|
53
|
+
|
54
|
+
release, release_notes = get_release_notes
|
55
|
+
|
56
|
+
hoe = Hoe.new(PKG_NAME, release) do |p|
|
57
|
+
p.author = 'Kurt Stephens'
|
58
|
+
p.description = PKG_DESCRIPTION
|
59
|
+
p.email = "ruby-#{PKG_NAME}@umleta.com"
|
60
|
+
p.summary = p.description
|
61
|
+
p.changes = release_notes
|
62
|
+
p.url = "http://rubyforge.org/projects/#{PKG_NAME}"
|
63
|
+
|
64
|
+
p.test_globs = ['test/**/*.rb']
|
65
|
+
end
|
66
|
+
|
67
|
+
PKG_VERSION = hoe.version
|
68
|
+
|
69
|
+
#################################################################
|
70
|
+
# Version file
|
71
|
+
#
|
72
|
+
|
73
|
+
def announce(msg='')
|
74
|
+
STDERR.puts msg
|
75
|
+
end
|
76
|
+
|
77
|
+
version_rb = "lib/#{PKG_NAME}/#{PKG_NAME}_version.rb"
|
78
|
+
|
79
|
+
task :update_version do
|
80
|
+
announce "Updating #{PKG_Name} version to #{PKG_VERSION}: #{version_rb}"
|
81
|
+
open(version_rb, "w") do |f|
|
82
|
+
f.puts "# DO NOT EDIT"
|
83
|
+
f.puts "# This file is auto-generated by build scripts."
|
84
|
+
f.puts "# See: rake update_version"
|
85
|
+
f.puts "module #{PKG_Name}"
|
86
|
+
f.puts " #{PKG_Name}Version = '#{PKG_VERSION}'"
|
87
|
+
f.puts "end"
|
88
|
+
end
|
89
|
+
if ENV['RELTEST']
|
90
|
+
announce "Release Task Testing, skipping commiting of new version"
|
91
|
+
else
|
92
|
+
sh %{svn commit -m "Updated to version #{PKG_VERSION}" #{version_rb} Rakefile}
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
task version_rb => :update_version
|
97
|
+
|
98
|
+
# task :test => :update_version
|
99
|
+
|
100
|
+
|
101
|
+
# Misc Tasks ---------------------------------------------------------
|
102
|
+
|
103
|
+
def egrep(pattern)
|
104
|
+
Dir['**/*.rb'].each do |fn|
|
105
|
+
count = 0
|
106
|
+
open(fn) do |f|
|
107
|
+
while line = f.gets
|
108
|
+
count += 1
|
109
|
+
if line =~ pattern
|
110
|
+
puts "#{fn}:#{count}:#{line}"
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
desc "Look for TODO and FIXME tags in the code"
|
118
|
+
task :todo do
|
119
|
+
egrep /#.*(FIXME|TODO|TBD)/
|
120
|
+
end
|
121
|
+
|
122
|
+
desc "Look for Debugging print lines"
|
123
|
+
task :dbg do
|
124
|
+
egrep /\bDBG|\bbreakpoint\b/
|
125
|
+
end
|
126
|
+
|
127
|
+
desc "List all ruby files"
|
128
|
+
task :rubyfiles do
|
129
|
+
puts Dir['**/*.rb'].reject { |fn| fn =~ /^pkg/ }
|
130
|
+
puts Dir['bin/*'].reject { |fn| fn =~ /CVS|.svn|(~$)|(\.rb$)/ }
|
131
|
+
end
|
132
|
+
|