core_ex 0.4.0 → 0.5.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. data/ChangeLog +251 -0
  2. data/NEWS +29 -0
  3. data/README +1 -1
  4. data/SPEC.yml +10 -10
  5. data/lib/core_ex/dependencies_ext/constant_load_path.rb +1 -1
  6. data/lib/core_ex/embedded_tests.rb +1 -1
  7. data/lib/core_ex/enumerable.rb +87 -5
  8. data/lib/core_ex/exception.rb +1 -1
  9. data/lib/core_ex/file_utils.rb +1 -1
  10. data/lib/core_ex/lazy_loading.rb +159 -0
  11. data/lib/core_ex/module/attr_once.rb +1 -1
  12. data/lib/core_ex/module/import.rb +4 -6
  13. data/lib/core_ex/module/in_place.rb +1 -1
  14. data/lib/core_ex/module/mix_in_with_args.rb +1 -1
  15. data/lib/core_ex/numeric.rb +46 -0
  16. data/lib/core_ex/object/instance_eval_with_args.rb +1 -1
  17. data/lib/core_ex/object/singleton_class.rb +1 -1
  18. data/lib/core_ex/object/the_first_time.rb +1 -1
  19. data/lib/core_ex/pathname.rb +17 -11
  20. data/lib/core_ex/proc.rb +80 -1
  21. data/lib/core_ex/rakefile_base.rf +192 -296
  22. data/lib/core_ex/require.rb +1 -1
  23. data/lib/core_ex/string.rb +11 -2
  24. data/lib/core_ex/time.rb +1 -1
  25. data/lib/core_ex/try_dup.rb +1 -1
  26. data/lib/core_ex/yaml.rb +101 -79
  27. data/lib/core_ex.rb +129 -128
  28. data/lib/d_time.rb +225 -53
  29. data/lib/dumpable_proc.rb +1 -10
  30. data/lib/path_list.rb +18 -7
  31. data/lib/temp_path.rb +3 -3
  32. data/lib/test/unit/u_i/yaml/test_runner.rb +1 -1
  33. data/lib/version.rb +309 -69
  34. data/lib/yaml_extension.rb +1 -1
  35. data/test/fixtures/lazy_loading/a_b/a/c.rb +6 -0
  36. data/test/fixtures/lazy_loading/a_b/a.rb +2 -0
  37. data/test/fixtures/lazy_loading/a_b/b/c.rb +4 -0
  38. data/test/fixtures/lazy_loading/a_b/b.rb +2 -0
  39. data/test/fixtures/lazy_loading/double/a/bouhou.rb +2 -0
  40. data/test/fixtures/lazy_loading/double/a/foo_bar.rb +5 -0
  41. data/test/fixtures/lazy_loading/double/a/sub/a/suba.rb +7 -0
  42. data/test/fixtures/lazy_loading/double/b/root/sub/b.rb +6 -0
  43. data/test/fixtures/lazy_loading/double/b/root/sub.rb +4 -0
  44. data/test/fixtures/lazy_loading/double/b/root.rb +2 -0
  45. data/test/fixtures/lazy_loading/foo_bars/foo_bar.rb +4 -0
  46. data/test/fixtures/lazy_loading/foo_bars/mods/mod.rb +6 -0
  47. data/test/fixtures/lazy_loading/foo_bars/mods/sub_mod.rb +6 -0
  48. data/test/fixtures/lazy_loading/foo_bars/mods/sub_sub_mod.rb +7 -0
  49. data/test/fixtures/lazy_loading/foo_bars/mods.rb +4 -0
  50. data/test/fixtures/lazy_loading/foo_bars/sub_foo_bar.rb +5 -0
  51. data/test/fixtures/lazy_loading/foo_bars/titis/tutu.rb +6 -0
  52. data/test/fixtures/lazy_loading/foo_bars/totos.rb +6 -0
  53. data/test/fixtures/lazy_loading/foo_bars.rb +4 -0
  54. data/test/lazy_loading/test_already_present_name_absolute.rb +6 -0
  55. data/test/lazy_loading/test_already_present_name_relative.rb +11 -0
  56. data/test/lazy_loading/test_inside_another_module.rb +5 -0
  57. data/test/lazy_loading/test_lazy_loading.rb +179 -0
  58. data/test/sanity/multiple-requires.yml +22 -4
  59. data/test/unit-suite.yml +5 -4
  60. metadata +119 -80
  61. data/SPEC.dyn.yml +0 -10
  62. data/SPEC.gemspec +0 -13
  63. data/test/test-unit-setup.rb +0 -19
  64. /data/test/{resources → fixtures}/require/test_require +0 -0
  65. /data/test/{resources → fixtures}/require/test_require_rb.rb +0 -0
  66. /data/test/{resources → fixtures}/require/test_require_so.so +0 -0
  67. /data/test/{resources → fixtures}/use-from-gems.rb +0 -0
  68. /data/test/{resources → fixtures}/yaml_testrunner/unit_test.rb +0 -0
data/lib/d_time.rb CHANGED
@@ -1,78 +1,196 @@
1
1
  # Copyright:: Copyright (c) 2004 Nicolas Despres. All rights reserved.
2
2
  # Author:: Nicolas Despres <polrop@lrde.epita.fr>.
3
3
  # License:: Gnu General Public License.
4
- # Revision:: $Id: d_time.rb 334 2005-09-04 14:29:40Z ertai $
4
+ # Revision:: $Id: /w/fey/ruby_ex/trunk/core_ex/lib/d_time.rb 21961 2006-02-19T19:47:14.158917Z pouillar $
5
5
 
6
+ class Numeric
6
7
 
8
+ def to_dtime
9
+ DTime.new self
10
+ end
11
+
12
+ alias_method :second, :to_dtime
7
13
 
14
+ end # class Numeric
8
15
 
9
16
  class DTime
10
- have YamlExtension
17
+ include Comparable
18
+
19
+ have YamlExtension, :dtime, :d_time
11
20
 
12
21
  def initialize(delta)
13
- @delta = delta.to_f.abs
14
- @min, @sec = @delta.divmod(60)
15
- @hour, @min = @min.floor.divmod(60)
16
- @day, @hour = @hour.divmod(24)
22
+ @delta = delta.to_f
17
23
  end
18
24
 
19
- attr_reader :delta, :sec, :min, :hour, :day
25
+ attr_reader :delta
20
26
 
21
- def to_s
22
- @delta.to_s.freeze
27
+ def coerce ( lhs )
28
+ [lhs.to_dtime, self]
23
29
  end
24
30
 
25
- def inspect
26
- res = []
27
- res << "#@day days" unless @day.zero?
28
- res << "#@hour hours" unless @hour.zero?
29
- res << "#@min mins" unless @min.zero?
30
- res << "#@sec secs" if res.empty? or not @sec.zero?
31
- res.join ' '
31
+ def <=> ( rhs )
32
+ @delta <=> rhs.to_f
32
33
  end
33
34
 
34
- def to_yaml_string
35
- inspect
35
+ %w[ / * - + % ].each do |op|
36
+ class_eval "
37
+ def #{op} ( rhs )
38
+ DTime.new(@delta #{op} rhs.to_f)
39
+ end
40
+ "
36
41
  end
37
42
 
38
- def to_a
39
- [ @day, @hour, @min, @sec ].freeze
43
+ def -@
44
+ DTime.new(-@delta)
45
+ end
46
+
47
+ def +@
48
+ self
40
49
  end
41
50
 
51
+ alias_method :to_f, :delta
52
+
42
53
  def to_i
43
54
  @delta.to_i
44
55
  end
45
56
 
46
- alias to_f delta
57
+ def floor
58
+ @delta.floor
59
+ end
60
+
61
+ def round
62
+ @delta.round
63
+ end
47
64
 
48
65
  def hash
49
66
  @delta.hash
50
67
  end
51
68
 
52
- def to_hash
53
- { :days => @day, :hours => @hour, :mins => @min, :secs => @sec }.freeze
69
+ class TimeUnit
70
+ def initialize ( unit_name, value_in_seconds )
71
+ @name = unit_name
72
+ @plural = unit_name.to_s.pluralize.to_sym
73
+ @value_in_seconds = value_in_seconds
74
+ end
75
+ attr_reader :name, :plural, :value_in_seconds
76
+ end # class TimeUnit
77
+
78
+ def self.time_unit ( unit_name, value_in_seconds )
79
+ value_in_seconds = value_in_seconds.to_f
80
+ unit = TimeUnit.new unit_name, value_in_seconds
81
+ @@time_units << unit
82
+ current_size = @@time_units.size
83
+ to_unit_name = "to_#{unit_name}"
84
+ to_unit_plural = "to_#{unit.plural}"
85
+
86
+ # Conversion method
87
+ unless method_defined? to_unit_name
88
+ define_method(to_unit_name) { delta / value_in_seconds }
89
+ end
90
+ unless method_defined? to_unit_plural
91
+ alias_method to_unit_plural, to_unit_name
92
+ end
93
+
94
+ # Component extraction method
95
+ unless method_defined? unit_name
96
+ define_method(unit_name) do
97
+ next_unit = @@time_units[current_size]
98
+ modulo = (next_unit.nil?)? 1 : next_unit.value_in_seconds
99
+ ((delta.abs % modulo) / value_in_seconds).to_i
100
+ end
101
+ end
102
+ unless method_defined? unit.plural
103
+ alias_method unit.plural, unit_name
104
+ end
105
+
106
+ # Numeric extension
107
+ unless Numeric.method_defined? unit_name
108
+ Numeric.send(:define_method, unit_name) { DTime.new(self * value_in_seconds) }
109
+ end
110
+ unless Numeric.method_defined? unit.plural
111
+ Numeric.send(:alias_method, unit.plural, unit_name)
112
+ end
54
113
  end
55
114
 
56
- def floor
57
- @delta.floor
115
+ def second
116
+ delta.abs % 60
117
+ end
118
+ alias_method :sec, :second
119
+ alias_method :to_second, :delta
120
+ alias_method :to_sec, :delta
121
+
122
+ # Time units
123
+
124
+ @@time_units = []
125
+
126
+ time_unit :second, 1
127
+ time_unit :minute, 60.seconds
128
+ time_unit :hour, 60.minutes
129
+ time_unit :day, 24.hours
130
+ time_unit :week, 7.days
131
+ # time_unit :month, 30.days
132
+ time_unit :year, 365.25.days
133
+ # time_unit :..., 10.years
134
+ time_unit :century, 100.years
135
+
136
+ alias_method :min, :minutes
137
+ alias_method :to_min, :to_minutes
138
+
139
+ # Warning: Values are spawned from the largest unit to the finest
140
+ # (e.g. days, hours, minutes...).
141
+ # Warning: This method does not give you the sign of the DTime.
142
+ def each ( &block )
143
+ accu = @delta.abs
144
+ @@time_units.reverse_each do |unit|
145
+ if unit.name == :second
146
+ block[accu, unit]
147
+ else
148
+ x, accu = accu.divmod(unit.value_in_seconds)
149
+ next if x.zero? and accu == @delta.abs
150
+ block[x.to_i, unit]
151
+ end
152
+ end
58
153
  end
59
154
 
60
- def round
61
- @delta.round
155
+ # Warning: This method does not give you the sign of the DTime.
156
+ def to_a
157
+ result = []
158
+ each { |x, unit| result << x }
159
+ result
62
160
  end
63
161
 
64
- def self.diff ( *args, &block )
65
- start = Time.now
66
- block[*args]
67
- return Time.now - start
162
+ def to_s
163
+ result = []
164
+ each do |x, unit|
165
+ case x
166
+ when 0
167
+ when 1 then result << "1 #{unit.name}"
168
+ else result << "#{x} #{unit.plural}"
169
+ end
170
+ end
171
+ result << '0' if result.empty?
172
+ (((@delta < 0)? '-' : '') + result.join(' ')).freeze
173
+ end
174
+
175
+ def inspect
176
+ to_s + ':DTime'
177
+ end
178
+
179
+ def to_yaml_string
180
+ to_s
68
181
  end
69
182
 
70
- def == ( rhs )
71
- @delta == rhs.to_f
183
+ # Warning: This method does not give you the sign of the DTime.
184
+ def to_hash
185
+ result = {}
186
+ each { |x, unit| result[unit.name] = x }
187
+ result.freeze
72
188
  end
73
189
 
74
- def method_missing ( *a, &b )
75
- @delta.send(*a, &b)
190
+ def self.diff ( *args, &block )
191
+ start = Time.now
192
+ block[*args]
193
+ return Time.now - start
76
194
  end
77
195
 
78
196
  attr_once :to_s, :inspect, :to_a, :to_i, :hash, :to_hash, :floor,
@@ -89,10 +207,19 @@ class DTimeTest < Test::Unit::TestCase
89
207
  def test_simple
90
208
  d = DTime.new(260.33)
91
209
  assert_equal(260, d.delta.floor)
210
+ assert_equal(20, d.seconds.floor)
211
+ assert_equal(20, d.second.floor)
92
212
  assert_equal(20, d.sec.floor)
213
+ assert_equal(4, d.minutes)
214
+ assert_equal(4, d.minute)
93
215
  assert_equal(4, d.min)
216
+ assert_equal(0, d.hours)
94
217
  assert_equal(0, d.hour)
218
+ assert_equal(0, d.days)
95
219
  assert_equal(0, d.day)
220
+ assert_equal(0, d.week)
221
+ assert_equal(0, d.year)
222
+ assert_equal(0, d.century)
96
223
  end
97
224
 
98
225
  def test_complex
@@ -102,19 +229,19 @@ class DTimeTest < Test::Unit::TestCase
102
229
  assert_equal(47, d.min)
103
230
  assert_equal(1, d.hour)
104
231
  assert_equal(3, d.day)
105
- assert_equal([ 3, 1, 47 ], d.to_a[0..2])
106
- assert_equal(58, d.to_a[3].floor)
232
+ assert_equal([ 3, 1, 47, 58 ], d.to_a.map { |x| x.to_i })
107
233
  h = d.to_hash
108
- assert_equal(3, h[:days])
109
- assert_equal(1, h[:hours])
110
- assert_equal(47, h[:mins])
111
- assert_equal(58, h[:secs].floor)
234
+ assert_equal(3, h[:day])
235
+ assert_equal(1, h[:hour])
236
+ assert_equal(47, h[:minute])
237
+ assert_equal(58, h[:second].floor)
112
238
  end
113
239
 
114
240
  def test_conversion
115
241
  d = DTime.new(260.75)
116
- assert_equal('260.75', d.to_s)
117
- assert_equal('4 mins 20.75 secs', d.inspect)
242
+ assert_equal('260.75', d.to_f.to_s)
243
+ assert_equal('4 minutes 20.75 seconds', d.to_s)
244
+ assert_equal('4 minutes 20.75 seconds:DTime', d.inspect)
118
245
  assert_equal(260, d.to_f.floor)
119
246
  assert_equal(260, d.to_i)
120
247
  assert_equal(260, d.floor)
@@ -123,7 +250,7 @@ class DTimeTest < Test::Unit::TestCase
123
250
 
124
251
  def test_negative
125
252
  d = DTime.new(-265678.42000)
126
- assert_equal(265678, d.delta.floor)
253
+ assert_equal(-265679, d.delta.floor)
127
254
  assert_equal(58, d.sec.floor)
128
255
  assert_equal(47, d.min)
129
256
  assert_equal(1, d.hour)
@@ -137,13 +264,13 @@ class DTimeTest < Test::Unit::TestCase
137
264
 
138
265
  def test_to_yaml
139
266
  d = DTime.new(265678.42000)
140
- assert_yaml_dump(d, '--- !dtime 3 days 1 hours 47 mins 58.4199999999837 secs')
267
+ assert_yaml_dump(d, '!dtime 3 days 1 hour 47 minutes 58.4199999999837 seconds')
141
268
  d = DTime.new(5678.42000)
142
- assert_yaml_dump(d, '--- !dtime 1 hours 34 mins 38.4200000000001 secs')
269
+ assert_yaml_dump(d, '!dtime 1 hour 34 minutes 38.4200000000001 seconds')
143
270
  d = DTime.new(158.42000)
144
- assert_yaml_dump(d, '--- !dtime 2 mins 38.42 secs')
271
+ assert_yaml_dump(d, '!dtime 2 minutes 38.42 seconds')
145
272
  d = DTime.new(58.42000)
146
- assert_yaml_dump(d, '--- !dtime 58.42 secs')
273
+ assert_yaml_dump(d, '!dtime 58.42 seconds')
147
274
  end
148
275
 
149
276
  def test_diff
@@ -151,7 +278,7 @@ class DTimeTest < Test::Unit::TestCase
151
278
  d = DTime.diff(42, 43) do |*args|
152
279
  assert_equal([42, 43], args)
153
280
  @foo = 2
154
- sleep 0.2
281
+ sleep 0.3
155
282
  @foo = 3
156
283
  end
157
284
  assert_kind_of(DTime, d)
@@ -170,10 +297,55 @@ class DTimeTest < Test::Unit::TestCase
170
297
  assert_equal(0, d.day)
171
298
  end
172
299
 
173
- def test_method_missing
174
- c = DTime.new 260.33
175
- assert_nothing_raised { c /= 2 }
176
- assert_nothing_raised { c > 3 }
300
+ def test_stricly_greater
301
+ assert(DTime.new(4.5) > 2)
302
+ end
303
+
304
+ def test_stricly_lesser
305
+ assert(DTime.new(4.5) < 4.6)
306
+ end
307
+
308
+ def test_greater_or_equal
309
+ assert(DTime.new(4.5) >= 4.5)
310
+ end
311
+
312
+ def test_lesser_or_equal
313
+ assert(DTime.new(4.5) <= 4.5)
314
+ end
315
+
316
+ def test_equal
317
+ assert(DTime.new(4.5) == 4.5)
318
+ end
319
+
320
+ def test_divide
321
+ d = DTime.new(4.5)
322
+ assert_equal(2.25, d / 2)
323
+ end
324
+
325
+ def test_multiple
326
+ d = DTime.new(4.5)
327
+ assert_equal(9, d * 2)
328
+ end
329
+
330
+ def test_add
331
+ d = DTime.new(4.5)
332
+ assert_equal(6.5, d + 2)
333
+ end
334
+
335
+ def test_sub
336
+ d = DTime.new(4.5)
337
+ assert_kind_of(DTime, d - 2)
338
+ assert_equal(2.5, d - 2)
339
+ end
340
+
341
+ def test_uadd
342
+ d = DTime.new(4.5)
343
+ assert_equal(4.5, +d)
344
+ end
345
+
346
+ def test_usub
347
+ d = DTime.new(2.5)
348
+ assert_equal(-2.5, -d)
177
349
  end
178
350
 
179
351
  end # class DTimeTest
data/lib/dumpable_proc.rb CHANGED
@@ -1,21 +1,12 @@
1
1
  # Copyright:: Copyright (c) 2005 Nicolas Pouillard. All rights reserved.
2
2
  # Author:: Nicolas Pouillard <ertai@lrde.epita.fr>.
3
3
  # License:: Gnu General Public License.
4
- # Revision:: $Id: dumpable_proc.rb 362 2005-09-24 17:12:57Z ertai $
4
+ # Revision:: $Id: /w/fey/ruby_ex/trunk/core_ex/lib/dumpable_proc.rb 8014 2005-10-26T12:35:42.562387Z ertai $
5
5
 
6
6
 
7
7
  class DumpableProc < Proc
8
8
 
9
9
  def self.new ( str )
10
- # FIXME imporve prevent from ruby injections
11
- if str =~ /[{}]/
12
- str = str.gsub(/[^{}]/, '')
13
- while str.gsub!(/\{\}/, '')
14
- end
15
- unless str.empty?
16
- raise ArgumentError, "Bad block: bad `{' `}' equilibration"
17
- end
18
- end
19
10
  pr = super(&eval("proc { #{str} }"))
20
11
  pr.instance_eval { @str = str.freeze }
21
12
  pr
data/lib/path_list.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # Copyright:: Copyright (c) 2005 Nicolas Pouillard. All rights reserved.
2
2
  # Author:: Nicolas Pouillard <ertai@lrde.epita.fr>.
3
3
  # License:: Gnu General Public License.
4
- # Revision:: $Id: path_list.rb 336 2005-09-06 20:32:49Z ertai $
4
+ # Revision:: $Id: /w/fey/ruby_ex/trunk/core_ex/lib/path_list.rb 21866 2006-02-18T17:15:58.449667Z pouillar $
5
5
  #--
6
6
  # Copyright (c) 2003, 2004 Jim Weirich
7
7
  #
@@ -380,8 +380,10 @@ class PathList
380
380
  # <<<<
381
381
  pattern = pattern.to_s
382
382
  re = Regexp.quote(pattern)
383
- re.gsub!(/\\\{([^}]+)\\\}/) do
384
- '(?:' + $1.gsub(/,/, '|') + ')'
383
+ while re =~ /\\\{/
384
+ re.gsub!(/\\\{([^{}]+)\\\}/) do
385
+ '(?:' + $1.gsub(/,/, '|') + ')'
386
+ end
385
387
  end
386
388
  re.gsub!(/\\\*\\\*\//, '(?:.+/)?')
387
389
  re.gsub!(/\\\*/, '[^/]*')
@@ -495,31 +497,40 @@ test_section __FILE__ do
495
497
  @l = PathList[]
496
498
  @args = []
497
499
  @mo = lambda { |*a| @args << a }
498
- %w[ foo barbar bazfoo foo/a foo/b ].each do |x|
500
+ %w[ foo barbar bazfoo foo/a foo/b bu bi ].each do |x|
499
501
  (@r/x).mkpath
500
502
  @l << @r/x
501
503
  end
502
504
  @l2 = PathList[@r/'(f?o)', @r/'b(a*)', @r/'fo,',
503
505
  @r/'f.o', @r/'**/({a,b})']
504
506
  @l3 = PathList[@r/'ba{rbar,zfoo}']
507
+ @l4 = PathList[@r/'(b{a{rbar,zfoo},u,i})']
505
508
  end
506
509
 
507
510
  def test_each
508
511
  @l.each(&@mo)
509
512
  @l2.each(&@mo)
510
513
  @l3.each(&@mo)
514
+ @l4.each(&@mo)
511
515
  assert_equal([
512
516
  [@r/'foo'], [@r/'barbar'], [@r/'bazfoo'], [@r/'foo/a'], [@r/'foo/b'],
517
+ [@r/'bu'], [@r/'bi'],
518
+
513
519
  [@r/'foo', 'foo'], [@r/'barbar', 'arbar'], [@r/'bazfoo', 'azfoo'],
514
520
  [@r/'fo,'], [@r/'f.o'], [@r/'foo/a', 'a'], [@r/'foo/b', 'b'],
515
- [@r/'barbar'], [@r/'bazfoo']
521
+
522
+ [@r/'barbar'], [@r/'bazfoo'],
523
+
524
+ [@r/'barbar', 'barbar'], [@r/'bazfoo', 'bazfoo'], [@r/'bu', 'bu'],
525
+ [@r/'bi', 'bi']
516
526
  ], @args)
517
527
  end
518
528
 
519
529
  def test_pathlist
520
530
  ls = __FILE__.to_path.dirname + '*.rb'
521
- assert_yaml_load "--- !filelist #{ls}", PathList, PathList[ls]
522
- assert_yaml_dump @val, @val.to_a.to_yaml
531
+ assert_yaml_load "!filelist #{ls}", PathList, PathList[ls]
532
+ assert_yaml_dump @val.to_a, /.*/
533
+ assert_yaml_dump @val, @str
523
534
  end
524
535
 
525
536
  end # class PathListTest
data/lib/temp_path.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # License: Gnu General Public License.
4
4
 
5
5
  # $LastChangedBy: ertai $
6
- # $Id: temp_path.rb 351 2005-09-14 08:33:42Z ertai $
6
+ # $Id: /w/fey/ruby_ex/trunk/core_ex/lib/temp_path.rb 8004 2005-10-09T19:51:28.097991Z ertai $
7
7
 
8
8
  require 'tempfile'
9
9
  require 'tmpdir'
@@ -184,8 +184,8 @@ test_section __FILE__ do
184
184
  end
185
185
 
186
186
  def test_interface
187
- assert_match(/\.#{$$}\/foo\.\d+$/, @foo.to_s)
188
- assert_match(/\.#{$$}\/foo\.\d+\.bar$/, @foobar.to_s)
187
+ assert_match(/\.#{$$}\/foo\.-?\d+$/, @foo.to_s)
188
+ assert_match(/\.#{$$}\/foo\.-?\d+\.bar$/, @foobar.to_s)
189
189
  assert_nothing_raised { @foo.open('w') { |f| f.puts 'FooFoo' } }
190
190
  end
191
191
 
@@ -3,7 +3,7 @@
3
3
  # License:: Ruby license.
4
4
 
5
5
  # $LastChangedBy: ertai $
6
- # $Id: test_runner.rb 351 2005-09-14 08:33:42Z ertai $
6
+ # $Id: /w/fey/ruby_ex/trunk/core_ex/lib/test/unit/u_i/yaml/test_runner.rb 7956 2005-09-14T08:33:42.463064Z ertai $
7
7
 
8
8
 
9
9
  require 'test/unit/autorunner'