multimethod 0.0.1 → 0.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.
- data/Manifest.txt +21 -54
- data/Rakefile +19 -2
- data/Releases.txt +7 -0
- data/lib/multimethod.rb +1 -0
- data/lib/multimethod/core_extensions.rb +6 -1
- data/lib/multimethod/method.rb +43 -185
- data/lib/multimethod/multimethod.rb +58 -3
- data/lib/multimethod/multimethod_version.rb +6 -0
- data/lib/multimethod/parameter.rb +124 -17
- data/lib/multimethod/signature.rb +322 -0
- data/lib/multimethod/table.rb +75 -30
- data/test/add_remove_test.rb +99 -0
- data/test/method_test.rb +2 -67
- data/test/multimethod_test.rb +18 -16
- data/test/signature_test.rb +190 -0
- metadata +23 -56
- data/.svn/README.txt +0 -2
- data/.svn/empty-file +0 -0
- data/.svn/entries +0 -68
- data/.svn/format +0 -1
- data/.svn/text-base/ChangeLog.svn-base +0 -3
- data/.svn/text-base/Manifest.txt.svn-base +0 -54
- data/.svn/text-base/README.txt.svn-base +0 -40
- data/.svn/text-base/Rakefile.svn-base +0 -132
- data/.svn/text-base/Releases.txt.svn-base +0 -7
- data/examples/.svn/README.txt +0 -2
- data/examples/.svn/empty-file +0 -0
- data/examples/.svn/entries +0 -22
- data/examples/.svn/format +0 -1
- data/examples/.svn/props/ex1.rb.svn-work +0 -5
- data/lib/.svn/README.txt +0 -2
- data/lib/.svn/empty-file +0 -0
- data/lib/.svn/entries +0 -24
- data/lib/.svn/format +0 -1
- data/lib/.svn/text-base/multimethod.rb.svn-base +0 -8
- data/lib/multimethod/.svn/README.txt +0 -2
- data/lib/multimethod/.svn/empty-file +0 -0
- data/lib/multimethod/.svn/entries +0 -53
- data/lib/multimethod/.svn/format +0 -1
- data/lib/multimethod/.svn/text-base/core_extensions.rb.svn-base +0 -38
- data/lib/multimethod/.svn/text-base/method.rb.svn-base +0 -232
- data/lib/multimethod/.svn/text-base/multimethod.rb.svn-base +0 -171
- data/lib/multimethod/.svn/text-base/parameter.rb.svn-base +0 -64
- data/lib/multimethod/.svn/text-base/table.rb.svn-base +0 -99
- data/test/.svn/README.txt +0 -2
- data/test/.svn/empty-file +0 -0
- data/test/.svn/entries +0 -53
- data/test/.svn/format +0 -1
- data/test/.svn/text-base/method_test.rb.svn-base +0 -89
- data/test/.svn/text-base/multimethod_test.rb.svn-base +0 -92
- data/test/.svn/text-base/parameter_test.rb.svn-base +0 -31
- data/test/.svn/text-base/test_base.rb.svn-base +0 -25
- data/test/.svn/text-base/usage_test.rb.svn-base +0 -146
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: multimethod
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0
|
7
|
-
date: 2006-11-
|
6
|
+
version: 0.1.0
|
7
|
+
date: 2006-11-24 00:00:00 -05:00
|
8
8
|
summary: "Supports Multimethod dispatching. For more details, see: http://multimethod.rubyforge.org/files/lib/multimethod_rb.html http://multimethod.rubyforge.org/files/README.txt http://multimethod.rubyforge.org/"
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -30,60 +30,27 @@ post_install_message:
|
|
30
30
|
authors:
|
31
31
|
- Kurt Stephens
|
32
32
|
files:
|
33
|
-
-
|
34
|
-
-
|
35
|
-
-
|
36
|
-
-
|
37
|
-
-
|
38
|
-
-
|
39
|
-
-
|
40
|
-
-
|
41
|
-
-
|
42
|
-
-
|
43
|
-
-
|
44
|
-
-
|
45
|
-
-
|
46
|
-
-
|
47
|
-
-
|
48
|
-
-
|
49
|
-
-
|
50
|
-
-
|
51
|
-
-
|
52
|
-
-
|
53
|
-
-
|
54
|
-
- ./lib/.svn/empty-file
|
55
|
-
- ./lib/.svn/entries
|
56
|
-
- ./lib/.svn/format
|
57
|
-
- ./lib/.svn/text-base/multimethod.rb.svn-base
|
58
|
-
- ./lib/multimethod.rb
|
59
|
-
- ./lib/multimethod/.svn/README.txt
|
60
|
-
- ./lib/multimethod/.svn/empty-file
|
61
|
-
- ./lib/multimethod/.svn/entries
|
62
|
-
- ./lib/multimethod/.svn/format
|
63
|
-
- ./lib/multimethod/.svn/text-base/core_extensions.rb.svn-base
|
64
|
-
- ./lib/multimethod/.svn/text-base/method.rb.svn-base
|
65
|
-
- ./lib/multimethod/.svn/text-base/multimethod.rb.svn-base
|
66
|
-
- ./lib/multimethod/.svn/text-base/parameter.rb.svn-base
|
67
|
-
- ./lib/multimethod/.svn/text-base/table.rb.svn-base
|
68
|
-
- ./lib/multimethod/core_extensions.rb
|
69
|
-
- ./lib/multimethod/method.rb
|
70
|
-
- ./lib/multimethod/multimethod.rb
|
71
|
-
- ./lib/multimethod/parameter.rb
|
72
|
-
- ./lib/multimethod/table.rb
|
73
|
-
- ./test/.svn/README.txt
|
74
|
-
- ./test/.svn/empty-file
|
75
|
-
- ./test/.svn/entries
|
76
|
-
- ./test/.svn/format
|
77
|
-
- ./test/.svn/text-base/method_test.rb.svn-base
|
78
|
-
- ./test/.svn/text-base/multimethod_test.rb.svn-base
|
79
|
-
- ./test/.svn/text-base/parameter_test.rb.svn-base
|
80
|
-
- ./test/.svn/text-base/test_base.rb.svn-base
|
81
|
-
- ./test/.svn/text-base/usage_test.rb.svn-base
|
82
|
-
- ./test/method_test.rb
|
83
|
-
- ./test/multimethod_test.rb
|
84
|
-
- ./test/parameter_test.rb
|
85
|
-
- ./test/test_base.rb
|
86
|
-
- ./test/usage_test.rb
|
33
|
+
- ChangeLog
|
34
|
+
- Manifest.txt
|
35
|
+
- README.txt
|
36
|
+
- Rakefile
|
37
|
+
- Releases.txt
|
38
|
+
- examples/ex1.rb
|
39
|
+
- lib/multimethod.rb
|
40
|
+
- lib/multimethod/core_extensions.rb
|
41
|
+
- lib/multimethod/method.rb
|
42
|
+
- lib/multimethod/multimethod.rb
|
43
|
+
- lib/multimethod/multimethod_version.rb
|
44
|
+
- lib/multimethod/parameter.rb
|
45
|
+
- lib/multimethod/signature.rb
|
46
|
+
- lib/multimethod/table.rb
|
47
|
+
- test/add_remove_test.rb
|
48
|
+
- test/method_test.rb
|
49
|
+
- test/multimethod_test.rb
|
50
|
+
- test/parameter_test.rb
|
51
|
+
- test/signature_test.rb
|
52
|
+
- test/test_base.rb
|
53
|
+
- test/usage_test.rb
|
87
54
|
test_files: []
|
88
55
|
|
89
56
|
rdoc_options: []
|
data/.svn/README.txt
DELETED
data/.svn/empty-file
DELETED
File without changes
|
data/.svn/entries
DELETED
@@ -1,68 +0,0 @@
|
|
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
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
4
|
@@ -1,54 +0,0 @@
|
|
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
|
@@ -1,40 +0,0 @@
|
|
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
|
-
|
@@ -1,132 +0,0 @@
|
|
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/examples/.svn/README.txt
DELETED
data/examples/.svn/empty-file
DELETED
File without changes
|
data/examples/.svn/entries
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
2
|
-
<wc-entries
|
3
|
-
xmlns="svn:">
|
4
|
-
<entry
|
5
|
-
committed-rev="4"
|
6
|
-
name=""
|
7
|
-
committed-date="2006-11-21T16:23:41.780783Z"
|
8
|
-
url="svn+ssh://rubyforge.org/var/svn/multimethod/multimethod/trunk/examples"
|
9
|
-
last-author="kstephens"
|
10
|
-
kind="dir"
|
11
|
-
repos="svn+ssh://rubyforge.org/var/svn/multimethod"
|
12
|
-
revision="4"/>
|
13
|
-
<entry
|
14
|
-
committed-rev="4"
|
15
|
-
name="ex1.rb"
|
16
|
-
text-time="2006-11-21T16:20:01.000000Z"
|
17
|
-
committed-date="2006-11-21T16:23:41.780783Z"
|
18
|
-
checksum="f101c5d90dab219e7170b1f5dc373a65"
|
19
|
-
last-author="kstephens"
|
20
|
-
kind="file"
|
21
|
-
prop-time="2006-11-21T16:20:23.000000Z"/>
|
22
|
-
</wc-entries>
|
data/examples/.svn/format
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
4
|