multimethod 0.0.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/.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
|
+
|