vcs 0.2.148 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. data/AUTHORS +6 -0
  2. data/NEWS +9 -0
  3. data/README +82 -0
  4. data/Rakefile +7 -72
  5. data/SPEC.dyn.yml +10 -0
  6. data/SPEC.gemspec +14 -0
  7. data/SPEC.yml +39 -0
  8. data/bin/vcs +18 -16
  9. data/lib/vcs/changelog.rb +164 -0
  10. data/lib/vcs/conflict.rb +21 -0
  11. data/{src → lib/vcs}/cvs.rb +1 -1
  12. data/{src → lib/vcs}/diff.rb +2 -2
  13. data/lib/vcs/diffstat.rb +28 -0
  14. data/lib/vcs/edit.rb +16 -0
  15. data/{src → lib/vcs}/last_changed_date.rb +3 -5
  16. data/{src → lib/vcs}/mail.rb +4 -4
  17. data/lib/vcs/message.rb +79 -0
  18. data/{src → lib/vcs}/mycommit.rb +15 -15
  19. data/{src → lib/vcs}/news.rb +6 -6
  20. data/{src → lib/vcs}/prcs.rb +1 -1
  21. data/{src → lib/vcs}/revision.rb +3 -4
  22. data/lib/vcs/script.rb +19 -0
  23. data/{src → lib/vcs}/status.rb +1 -1
  24. data/{src → lib/vcs}/svn.rb +3 -5
  25. data/lib/vcs/url.rb +16 -0
  26. data/lib/vcs/vcs.rb +279 -0
  27. metadata +52 -150
  28. data/TODO +0 -19
  29. data/doc/jamis.rb +0 -564
  30. data/ruby_ex/abstract.rb +0 -254
  31. data/ruby_ex/abstract_node.rb +0 -85
  32. data/ruby_ex/algorithms/simulated_annealing.rb +0 -140
  33. data/ruby_ex/array_each_pair.rb +0 -18
  34. data/ruby_ex/ask.rb +0 -101
  35. data/ruby_ex/attributed_class.rb +0 -302
  36. data/ruby_ex/cache.rb +0 -373
  37. data/ruby_ex/checkout.rb +0 -12
  38. data/ruby_ex/choose.rb +0 -271
  39. data/ruby_ex/commands.rb +0 -18
  40. data/ruby_ex/commands/command.rb +0 -401
  41. data/ruby_ex/commands/datas.rb +0 -16
  42. data/ruby_ex/commands/datas/data.rb +0 -33
  43. data/ruby_ex/commands/datas/factory.rb +0 -66
  44. data/ruby_ex/commands/factory.rb +0 -66
  45. data/ruby_ex/commands/helpers.rb +0 -67
  46. data/ruby_ex/commands/pipe.rb +0 -64
  47. data/ruby_ex/commands/runners.rb +0 -17
  48. data/ruby_ex/commands/runners/exec.rb +0 -49
  49. data/ruby_ex/commands/runners/fork.rb +0 -97
  50. data/ruby_ex/commands/runners/runner.rb +0 -107
  51. data/ruby_ex/commands/seq.rb +0 -27
  52. data/ruby_ex/config_file.rb +0 -96
  53. data/ruby_ex/const_regexp.rb +0 -59
  54. data/ruby_ex/daemon.rb +0 -134
  55. data/ruby_ex/diff.rb +0 -667
  56. data/ruby_ex/dlogger.rb +0 -62
  57. data/ruby_ex/drb/dispatcher.rb +0 -252
  58. data/ruby_ex/drb/dispatcher_server_test.rb +0 -29
  59. data/ruby_ex/drb/drb_observable.rb +0 -97
  60. data/ruby_ex/drb/drb_observable_pool.rb +0 -27
  61. data/ruby_ex/drb/drb_service.rb +0 -43
  62. data/ruby_ex/drb/drb_undumped_attributes.rb +0 -55
  63. data/ruby_ex/drb/drb_undumped_indexed_object.rb +0 -54
  64. data/ruby_ex/drb/insecure_protected_methods.rb +0 -103
  65. data/ruby_ex/drb/session_client_test.rb +0 -40
  66. data/ruby_ex/drb/session_manager.rb +0 -246
  67. data/ruby_ex/drb/session_server.rb +0 -53
  68. data/ruby_ex/dtime.rb +0 -143
  69. data/ruby_ex/dumpable_proc.rb +0 -63
  70. data/ruby_ex/exception.rb +0 -32
  71. data/ruby_ex/filetype.rb +0 -229
  72. data/ruby_ex/fileutils_ex.rb +0 -44
  73. data/ruby_ex/fold.rb +0 -58
  74. data/ruby_ex/generate_id.rb +0 -44
  75. data/ruby_ex/hookable.rb +0 -262
  76. data/ruby_ex/hooker.rb +0 -54
  77. data/ruby_ex/inactive_timeout.rb +0 -137
  78. data/ruby_ex/indexed_node.rb +0 -66
  79. data/ruby_ex/io_marshal.rb +0 -100
  80. data/ruby_ex/ioo.rb +0 -194
  81. data/ruby_ex/labeled_node.rb +0 -63
  82. data/ruby_ex/logger_observer.rb +0 -23
  83. data/ruby_ex/md5sum.rb +0 -66
  84. data/ruby_ex/mktemp.rb +0 -208
  85. data/ruby_ex/module/attr_once.rb +0 -36
  86. data/ruby_ex/module/autoload_tree.rb +0 -75
  87. data/ruby_ex/module/hierarchy.rb +0 -335
  88. data/ruby_ex/module/instance_method_visibility.rb +0 -73
  89. data/ruby_ex/module_ex.rb +0 -11
  90. data/ruby_ex/node.rb +0 -80
  91. data/ruby_ex/object_monitor.rb +0 -145
  92. data/ruby_ex/object_monitor_activity.rb +0 -33
  93. data/ruby_ex/observable.rb +0 -140
  94. data/ruby_ex/observable_pool.rb +0 -293
  95. data/ruby_ex/orderedhash.rb +0 -252
  96. data/ruby_ex/pathname_ex.rb +0 -152
  97. data/ruby_ex/pp_hierarchy.rb +0 -29
  98. data/ruby_ex/pseudo_cache.rb +0 -190
  99. data/ruby_ex/queue.rb +0 -56
  100. data/ruby_ex/random_generators.rb +0 -25
  101. data/ruby_ex/random_generators/random_generator.rb +0 -31
  102. data/ruby_ex/random_generators/ruby.rb +0 -23
  103. data/ruby_ex/safe_eval.rb +0 -348
  104. data/ruby_ex/sendmail.rb +0 -215
  105. data/ruby_ex/service_manager.rb +0 -121
  106. data/ruby_ex/session/administrable.rb +0 -120
  107. data/ruby_ex/session/client.rb +0 -153
  108. data/ruby_ex/session/const.rb +0 -18
  109. data/ruby_ex/session/dispatcher.rb +0 -184
  110. data/ruby_ex/session/error.rb +0 -21
  111. data/ruby_ex/session/fetchable.rb +0 -57
  112. data/ruby_ex/session/fetcher.rb +0 -62
  113. data/ruby_ex/session/hookable.rb +0 -26
  114. data/ruby_ex/session/profile.rb +0 -110
  115. data/ruby_ex/session/server.rb +0 -582
  116. data/ruby_ex/session/test/administrable_test.rb +0 -337
  117. data/ruby_ex/session/test/basic_test.rb +0 -523
  118. data/ruby_ex/session/test/dispatcher_test.rb +0 -409
  119. data/ruby_ex/session/test/fetchable_test.rb +0 -119
  120. data/ruby_ex/session/test/sub_server_test.rb +0 -188
  121. data/ruby_ex/shuffle.rb +0 -30
  122. data/ruby_ex/spring.rb +0 -136
  123. data/ruby_ex/spring_set.rb +0 -137
  124. data/ruby_ex/string_ex.rb +0 -28
  125. data/ruby_ex/symtbl.rb +0 -106
  126. data/ruby_ex/synflow.rb +0 -474
  127. data/ruby_ex/test/unit/ui/yaml/testrunner.rb +0 -164
  128. data/ruby_ex/thread_mutex.rb +0 -10
  129. data/ruby_ex/timeout_ex.rb +0 -81
  130. data/ruby_ex/top_down.rb +0 -73
  131. data/ruby_ex/trace.rb +0 -26
  132. data/ruby_ex/uri/druby.rb +0 -81
  133. data/ruby_ex/uri/file.rb +0 -65
  134. data/ruby_ex/uri/ftp_ex.rb +0 -37
  135. data/ruby_ex/uri/http_ex.rb +0 -43
  136. data/ruby_ex/uri/ssh.rb +0 -92
  137. data/ruby_ex/uri/svn.rb +0 -118
  138. data/ruby_ex/uri_ex.rb +0 -45
  139. data/ruby_ex/verbose_object.rb +0 -30
  140. data/ruby_ex/version.rb +0 -66
  141. data/ruby_ex/yaml/basenode_ext.rb +0 -63
  142. data/ruby_ex/yaml/chop_header.rb +0 -23
  143. data/ruby_ex/yaml/transform.rb +0 -449
  144. data/ruby_ex/yaml/yregexpath.rb +0 -76
  145. data/src/ask.rb +0 -101
  146. data/src/changelog.rb +0 -117
  147. data/src/conflict.rb +0 -20
  148. data/src/diffstat.rb +0 -42
  149. data/src/message.rb +0 -64
  150. data/src/reply-mail.rb +0 -14
  151. data/src/tools.rb +0 -22
  152. data/src/vcs.rb +0 -176
@@ -1,63 +0,0 @@
1
- # Copyright: Copyright (c) 2004 Nicolas Despres. All rights reserved.
2
- # Author: Nicolas Despres <polrop@lrde.epita.fr>.
3
- # License: Gnu General Public License.
4
-
5
- # $LastChangedBy: polrop $
6
- # $Id: node.rb 171 2005-03-29 09:12:47Z polrop $
7
-
8
-
9
- require 'abstract_node'
10
-
11
-
12
- class LabeledNode < AbstractNode
13
- include Concrete
14
-
15
- def initialize(data=nil, *sub_nodes)
16
- if sub_nodes.empty?
17
- @sub_nodes = {}
18
- else
19
- @sub_nodes = sub_nodes.first
20
- end
21
- super
22
- end
23
-
24
- def merge!(sub_nodes)
25
- sub_nodes.each { |index, sub_node| check_sub_node_type(sub_node) }
26
- @sub_nodes.merge(sub_nodes)
27
- end
28
-
29
- end # class LabeledNode
30
-
31
-
32
- if defined? TEST_MODE or __FILE__ == $0
33
-
34
- require 'test/unit'
35
-
36
- class LabeledNodeTest < Test::Unit::TestCase
37
-
38
- def test_simple
39
- s11 = LabeledNode.new(11)
40
- s12 = LabeledNode.new(12)
41
- s = LabeledNode.new(1, 0 => s11, 1 => s12)
42
- assert_equal(1, s.data)
43
- assert_equal(s11, s.sub_nodes[0])
44
- assert_equal(s12, s.sub_nodes[1])
45
- end
46
-
47
- def test_crochet_equal
48
- s = LabeledNode.new(1)
49
- assert_nothing_raised { s[0] = LabeledNode.new(10) }
50
- assert_raises(TypeError) { s[1] = nil }
51
- end
52
-
53
- def test_merge
54
- s = LabeledNode.new(1)
55
- s11 = LabeledNode.new(11)
56
- s12 = LabeledNode.new(12)
57
- s.merge!({ 0 => s11, 1 => s12 })
58
- end
59
-
60
- end # class LabeledNodeTest
61
-
62
- end
63
-
@@ -1,23 +0,0 @@
1
- # Copyright: Copyright (c) 2004 Nicolas Despres. All rights reserved.
2
- # Author: Nicolas Despres <polrop@lrde.epita.fr>.
3
- # License: Gnu General Public License.
4
-
5
- # $LastChangedBy: polrop $
6
- # $Id: logger_observer.rb 120 2005-01-22 19:43:06Z polrop $
7
-
8
-
9
- require 'logger'
10
-
11
-
12
- class Logger
13
-
14
- def update(*args, &block)
15
- severity = UNKNOWN
16
- if args.size > 0
17
- (severity = Severity.cons_get(args[0].to_s.upcase)) rescue NameError
18
- end
19
- add(severity, "#{args.inspect} #{block.inspect if block}", $PROGRAME_NAME)
20
- end
21
-
22
- end # class Logger
23
-
@@ -1,66 +0,0 @@
1
- # Copyright: Copyright (c) 2004 Nicolas Despres. All rights reserved.
2
- # Author: Nicolas Despres <polrop@lrde.epita.fr>.
3
- # License: Gnu General Public License.
4
-
5
- # $LastChangedBy: polrop $
6
- # $Id: md5sum.rb 88 2005-01-09 21:11:26Z polrop $
7
-
8
-
9
- require 'md5'
10
-
11
-
12
- class File
13
-
14
- def self.md5sum(filename)
15
- md5 = Digest::MD5.new
16
- IO.foreach(filename) { |l| md5 << l }
17
- md5
18
- end
19
-
20
- end # module File
21
-
22
-
23
- class Pathname
24
-
25
- def md5sum
26
- md5 = Digest::MD5.new
27
- each_line { |l| md5 << l }
28
- md5
29
- end
30
-
31
- end # class Pathname
32
-
33
-
34
- #
35
- # Unit test suite
36
- #
37
- if defined? TEST_MODE or __FILE__ == $0
38
-
39
-
40
- require 'test/unit/ui/yaml/testrunner'
41
- require 'mktemp'
42
-
43
-
44
- class MD5SumTest < Test::Unit::TestCase
45
-
46
- #
47
- # Tests
48
- #
49
- def test_simple
50
- TempPath.new('src_md5sum') do |tmp_filename|
51
- assert(system("man printf > #{tmp_filename} 2> /dev/null"),
52
- 'can\'t generate a tmp file from man printf')
53
- ref_md5sum = ''
54
- IO.popen("md5sum #{tmp_filename}") do |io|
55
- ref_md5sum = io.gets.chomp.sub(/\s+#{tmp_filename}$/, '')
56
- end
57
- assert_equal(ref_md5sum, File.md5sum(tmp_filename).to_s)
58
- assert_equal(ref_md5sum, tmp_filename.md5sum.to_s)
59
- end
60
- end
61
-
62
- end # class MD5SumTest
63
-
64
-
65
- end
66
-
@@ -1,208 +0,0 @@
1
- # Copyright: Copyright (c) 2004 Nicolas Pouillard. All rights reserved.
2
- # Author: Nicolas Pouillard <ertai@lrde.epita.fr>.
3
- # License: Gnu General Public License.
4
-
5
- # $LastChangedBy: ertai $
6
- # $Id: mktemp.rb 186 2005-04-03 00:07:45Z ertai $
7
-
8
- require 'pathname'
9
- require 'tempfile'
10
- require 'tmpdir'
11
- require 'set'
12
- require 'thread'
13
-
14
- class TempPath < Pathname
15
-
16
- @@tmps = Set.new
17
- @@mutex = Mutex.new
18
- @@progname = Pathname.new($0).basename
19
- @@tmpdir = Pathname.new(Dir.tmpdir) + "#{@@progname}.#{$$}"
20
- @@tmpdir.freeze
21
- @@initialized = false
22
- @@clean_planned = false
23
- @@auto_clean = true
24
-
25
- # You can use a temporary pathname like that:
26
- #
27
- # - # No argument are mandatory.
28
- # tmp = TempPath.new
29
- # tmp.open('w') { |f| f << 'foo' }
30
- # tmp.clean
31
- #
32
- # - # You can choose the basename and an extension.
33
- # TmpPath.new('the_base_file_name', 'rb')
34
- #
35
- # - # You can supply a block (recomended).
36
- # TmpPath.new('foo') do |tmp|
37
- # tmp.open('w') { |f| << 'foo' }
38
- # tmp.exist? == true
39
- # $tmp = tmp
40
- # end
41
- # $tmp.exist? == false
42
- #
43
- # - # You can make a temporary directory.
44
- # TmpPath.new('adirectory') do |tmpdir|
45
- # tmpdir.mkpath
46
- # $file = tmpdir + 'foo'
47
- # $file.open('w') { |f| f << 'foo' }
48
- # end
49
- # $file.exist? == false
50
- #
51
- def initialize ( base=@@progname, ext='', &block )
52
- if base.to_s =~ /\//
53
- raise ArgumentError, "bad basename, you give me a pathname #{base}"
54
- end
55
- self.class.init
56
- ext = ".#{ext}" unless ext.empty? or ext[0] == ?.
57
- res = nil
58
- @@mutex.synchronize do
59
- id_tmp = object_id
60
- while (res = @@tmpdir + "#{base}.#{id_tmp}#{ext}").exist? \
61
- and not @@tmps.include? res
62
- id_tmp += 1
63
- end
64
- super(res)
65
- @@tmps << self
66
- end
67
- if block_given?
68
- begin
69
- block[self.dup]
70
- ensure
71
- clean
72
- end
73
- end
74
- end
75
-
76
- # This method remove your temporary pathname.
77
- # You do not need to call this method if you provide
78
- # a block when you create a tempfile.
79
- def clean
80
- if exist?
81
- if directory?
82
- rmtree
83
- else
84
- unlink
85
- end
86
- end
87
- end
88
-
89
- def temp?
90
- true
91
- end
92
-
93
- def self.init #:nodoc:
94
- return if @@initialized
95
- @@mutex.synchronize do
96
- return if @@initialized
97
- @@tmpdir.mkpath
98
- @@initialized = true
99
- at_exit { clean if @@auto_clean }
100
- end
101
- end
102
-
103
- # By default the autoclean is on.
104
- # But in some case (if you use your temppaths in at_exit)
105
- # You must disable the autoclean.
106
- # And manually call TempPath.clean at the very of the program.
107
- def self.clean ( &block )
108
- @@mutex.synchronize do
109
- return if @@clean_planned
110
- @@clean_planned = true
111
- end
112
- begin
113
- block[] if block_given?
114
- ensure
115
- if @@tmpdir.exist?
116
- @@tmpdir.rmtree
117
- @@initialized = false
118
- end
119
- end
120
- end
121
-
122
- def self.auto_clean= ( aBool )
123
- @@auto_clean = aBool
124
- end
125
-
126
- def self.tmpdir
127
- init
128
- @@tmpdir
129
- end
130
-
131
- end # class TempPath
132
-
133
-
134
- # This tempfile extension, provide the mktemp function.
135
- #
136
- # Example:
137
- #
138
- # Tempfile.mktemp('foo', 'rb')
139
- # => 'foo.111811.432.rb'
140
- # which follow this format:
141
- # => 'base.pid.uniq.ext
142
- #
143
- # Tempfile.mktemp('bar')
144
- # => 'foo.111811.134'
145
- #
146
- class Tempfile
147
-
148
- # Almost deprecated use TempPath.
149
- def self.mktemp ( base=$0, ext='', &block )
150
- TempPath.new(base, ext, &block)
151
- end
152
-
153
- end # class Tempfile
154
-
155
-
156
- class Pathname
157
-
158
- def temp?
159
- false
160
- end
161
-
162
- end # class Pathname
163
-
164
-
165
-
166
- if defined? TEST_MODE or $0 == __FILE__
167
-
168
- require 'test/unit'
169
- class MkTempTest < Test::Unit::TestCase
170
-
171
- def setup
172
- @list = []
173
- end
174
-
175
- def teardown
176
- @list.each { |l| l.clean }
177
- end
178
-
179
- def test_interface
180
- assert_nothing_raised { @foo = Tempfile.mktemp('foo') }
181
- assert_nothing_raised { @foobar = Tempfile.mktemp('foo', 'bar') }
182
- assert_match(/\.#{$$}\/foo\.\d+$/, @foo.to_s)
183
- assert_match(/\.#{$$}\/foo\.\d+\.bar$/, @foobar.to_s)
184
- assert_nothing_raised { @foo.open('w') { |f| f.puts 'FooFoo' } }
185
- @list << @foo
186
- @list << @foobar
187
- end
188
-
189
- def test_many
190
- (0 .. 100).each do |i|
191
- tmp = Tempfile.mktemp('many')
192
- tmp.open('w') { |f| f.puts "i: #{i}" }
193
- assert(tmp.exist?)
194
- assert_equal("i: #{i}\n", tmp.readlines.join)
195
- @list << tmp
196
- end
197
- end
198
-
199
- def test_temp?
200
- tmp = Tempfile.mktemp('is_temp')
201
- assert(tmp.temp?, 'not tmp.temp?')
202
- assert_nothing_raised { Pathname.new(tmp.to_s).temp? }
203
- assert(!Pathname.new(tmp.to_s).temp?)
204
- end
205
-
206
- end # class MkTempTest
207
-
208
- end
@@ -1,36 +0,0 @@
1
- # Copyright: Copyright (c) 2004 Nicolas Despres. All rights reserved.
2
- # Author: Nicolas Despres <polrop@lrde.epita.fr>.
3
- # License: Gnu General Public License.
4
-
5
- # $LastChangedBy: polrop $
6
- # $Id: attr_once.rb 135 2005-01-28 12:43:31Z polrop $
7
-
8
-
9
- class Module
10
-
11
- # You can use this method as you use attr_reader. Must be used only with
12
- # immutable object.
13
- #
14
- # This method is imported from the Date implementation. It provides a way
15
- # to compute only once the value of getter. Basically, the first time, the
16
- # getter is used, its result is computed and stored in an attribute with the
17
- # same name. The second times only the attribute is returned.
18
- def attr_once(*ids)
19
- for id in ids
20
- module_eval <<-"end;", __FILE__, __LINE__
21
- alias_method :__#{id.to_i}__, :#{id.to_s}
22
- private :__#{id.to_i}__
23
- def #{id.to_s}(*args, &block)
24
- if defined? @__#{id.to_i}__
25
- @__#{id.to_i}__
26
- elsif ! self.frozen?
27
- @__#{id.to_i}__ ||= __#{id.to_i}__(*args, &block)
28
- else
29
- __#{id.to_i}__(*args, &block)
30
- end
31
- end
32
- end;
33
- end
34
- end
35
-
36
- end # class Module
@@ -1,75 +0,0 @@
1
- # Copyright: Copyright (c) 2004 Nicolas Despres. All rights reserved.
2
- # Author: Nicolas Despres <polrop@lrde.epita.fr>.
3
- # License: Gnu General Public License.
4
-
5
- # $LastChangedBy: ertai $
6
- # $Id: autoload_tree.rb 217 2005-05-09 12:01:07Z ertai $
7
-
8
-
9
- require 'pathname_ex'
10
-
11
-
12
- class Module
13
-
14
- def autoload_tree(dir, recursive=true, &block)
15
- pdir = Pathname.new(dir)
16
- pdir.each_entry do |p|
17
- next if p.to_s =~ /^\./
18
- pfull = pdir + p
19
- if pfull.directory? and recursive
20
- name = p.to_s.capitalize!
21
- const_set(name, Module.new) unless const_defined?(name)
22
- const_get(name).autoload_tree(pfull, recursive, &block)
23
- elsif pfull.file? and p.to_s =~ /\.rb$/
24
- autoload(name.to_s, pfull.to_s) if name = block[p]
25
- end
26
- end
27
- end
28
-
29
- def autoloaded_module ( file )
30
- dir = file.sub(/\.rb$/, '').to_path
31
- autoload_tree(dir) do |path|
32
- path.basename.to_s.sub(/\.rb$/, '').gsub(/(?:^|_)([a-z])/) { $1.upcase }
33
- end
34
- end
35
-
36
- end # class Module
37
-
38
-
39
- if (not defined? AUTOLOAD_TREE_TESTED) and
40
- (defined? TEST_MODE or __FILE__ == $0)
41
- AUTOLOAD_TREE_TESTED = true
42
-
43
- require 'test/unit/ui/console/testrunner'
44
-
45
-
46
- class AutoloadTreeTest < Test::Unit::TestCase
47
-
48
- if defined? SRC_DIR
49
- REPO_DIR = SRC_DIR + Pathname.new('../test/resources/autoload_tree')
50
- else
51
- REPO_DIR = Pathname.new(__FILE__).dirname +
52
- Pathname.new('../../test/resources/autoload_tree')
53
- end
54
-
55
- module AutoloadTree; end
56
-
57
- #
58
- # Test
59
- #
60
- def test_autoload_tree
61
- $: << REPO_DIR
62
- AutoloadTree.autoload_tree(REPO_DIR) { |p| p.to_s.sub!(/\.rb$/, '') }
63
- ["Foo", "B", "A"].each do |x|
64
- assert(AutoloadTree.constants.include?(x), "#{x} is missing")
65
- end
66
- assert_equal(["C"], AutoloadTree::Foo.constants)
67
- $:.delete(REPO_DIR)
68
- end
69
-
70
- end # class AutoloadTreeTest
71
-
72
-
73
- end
74
-
75
-