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.
- data/ChangeLog +251 -0
- data/NEWS +29 -0
- data/README +1 -1
- data/SPEC.yml +10 -10
- data/lib/core_ex/dependencies_ext/constant_load_path.rb +1 -1
- data/lib/core_ex/embedded_tests.rb +1 -1
- data/lib/core_ex/enumerable.rb +87 -5
- data/lib/core_ex/exception.rb +1 -1
- data/lib/core_ex/file_utils.rb +1 -1
- data/lib/core_ex/lazy_loading.rb +159 -0
- data/lib/core_ex/module/attr_once.rb +1 -1
- data/lib/core_ex/module/import.rb +4 -6
- data/lib/core_ex/module/in_place.rb +1 -1
- data/lib/core_ex/module/mix_in_with_args.rb +1 -1
- data/lib/core_ex/numeric.rb +46 -0
- data/lib/core_ex/object/instance_eval_with_args.rb +1 -1
- data/lib/core_ex/object/singleton_class.rb +1 -1
- data/lib/core_ex/object/the_first_time.rb +1 -1
- data/lib/core_ex/pathname.rb +17 -11
- data/lib/core_ex/proc.rb +80 -1
- data/lib/core_ex/rakefile_base.rf +192 -296
- data/lib/core_ex/require.rb +1 -1
- data/lib/core_ex/string.rb +11 -2
- data/lib/core_ex/time.rb +1 -1
- data/lib/core_ex/try_dup.rb +1 -1
- data/lib/core_ex/yaml.rb +101 -79
- data/lib/core_ex.rb +129 -128
- data/lib/d_time.rb +225 -53
- data/lib/dumpable_proc.rb +1 -10
- data/lib/path_list.rb +18 -7
- data/lib/temp_path.rb +3 -3
- data/lib/test/unit/u_i/yaml/test_runner.rb +1 -1
- data/lib/version.rb +309 -69
- data/lib/yaml_extension.rb +1 -1
- data/test/fixtures/lazy_loading/a_b/a/c.rb +6 -0
- data/test/fixtures/lazy_loading/a_b/a.rb +2 -0
- data/test/fixtures/lazy_loading/a_b/b/c.rb +4 -0
- data/test/fixtures/lazy_loading/a_b/b.rb +2 -0
- data/test/fixtures/lazy_loading/double/a/bouhou.rb +2 -0
- data/test/fixtures/lazy_loading/double/a/foo_bar.rb +5 -0
- data/test/fixtures/lazy_loading/double/a/sub/a/suba.rb +7 -0
- data/test/fixtures/lazy_loading/double/b/root/sub/b.rb +6 -0
- data/test/fixtures/lazy_loading/double/b/root/sub.rb +4 -0
- data/test/fixtures/lazy_loading/double/b/root.rb +2 -0
- data/test/fixtures/lazy_loading/foo_bars/foo_bar.rb +4 -0
- data/test/fixtures/lazy_loading/foo_bars/mods/mod.rb +6 -0
- data/test/fixtures/lazy_loading/foo_bars/mods/sub_mod.rb +6 -0
- data/test/fixtures/lazy_loading/foo_bars/mods/sub_sub_mod.rb +7 -0
- data/test/fixtures/lazy_loading/foo_bars/mods.rb +4 -0
- data/test/fixtures/lazy_loading/foo_bars/sub_foo_bar.rb +5 -0
- data/test/fixtures/lazy_loading/foo_bars/titis/tutu.rb +6 -0
- data/test/fixtures/lazy_loading/foo_bars/totos.rb +6 -0
- data/test/fixtures/lazy_loading/foo_bars.rb +4 -0
- data/test/lazy_loading/test_already_present_name_absolute.rb +6 -0
- data/test/lazy_loading/test_already_present_name_relative.rb +11 -0
- data/test/lazy_loading/test_inside_another_module.rb +5 -0
- data/test/lazy_loading/test_lazy_loading.rb +179 -0
- data/test/sanity/multiple-requires.yml +22 -4
- data/test/unit-suite.yml +5 -4
- metadata +119 -80
- data/SPEC.dyn.yml +0 -10
- data/SPEC.gemspec +0 -13
- data/test/test-unit-setup.rb +0 -19
- /data/test/{resources → fixtures}/require/test_require +0 -0
- /data/test/{resources → fixtures}/require/test_require_rb.rb +0 -0
- /data/test/{resources → fixtures}/require/test_require_so.so +0 -0
- /data/test/{resources → fixtures}/use-from-gems.rb +0 -0
- /data/test/{resources → fixtures}/yaml_testrunner/unit_test.rb +0 -0
data/lib/version.rb
CHANGED
@@ -1,127 +1,367 @@
|
|
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: version.rb
|
4
|
+
# Revision:: $Id: /w/fey/ruby_ex/trunk/core_ex/lib/version.rb 22190 2006-02-23T17:21:00.661381Z pouillar $
|
5
5
|
|
6
6
|
|
7
7
|
class Version
|
8
|
+
yaml_as 'tag:feydakins.org,2006:version'
|
8
9
|
include Comparable
|
9
10
|
|
10
|
-
attr_accessor :major, :minor, :
|
11
|
+
attr_accessor :major, :minor, :tag, :category, :name, :release_name
|
12
|
+
# protected :major=, :minor=, :tag=,
|
13
|
+
# :category=, :name=, :release_name=
|
11
14
|
|
12
|
-
def initialize(major, minor,
|
13
|
-
|
14
|
-
@
|
15
|
-
@
|
16
|
-
@
|
15
|
+
def initialize ( major, minor, tag=nil, tag_offset=nil,
|
16
|
+
category=nil, name=nil, release_name=nil )
|
17
|
+
@major = major
|
18
|
+
@minor = minor
|
19
|
+
@tag = Tag[tag || :off, tag_offset || 0]
|
20
|
+
if @tag.offset.zero?
|
21
|
+
case @tag.name
|
22
|
+
when :p then raise ArgumentError, 'The patch level tag (p) needs an offset'
|
23
|
+
when :r then raise ArgumentError, 'The revision tag (r) needs an offset'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
@category = category || ''
|
27
|
+
@name = name || ''
|
28
|
+
@release_name = release_name || ''
|
17
29
|
end
|
18
30
|
|
19
|
-
def
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
else
|
25
|
-
@build <=> other.build
|
26
|
-
end
|
27
|
-
else
|
28
|
-
@minor <=> other.minor
|
29
|
-
end
|
30
|
-
else
|
31
|
-
@major <=> other.major
|
31
|
+
def self.parse ( str )
|
32
|
+
re_cat_name = /([\w-]+\/)?([\w-]+)/
|
33
|
+
re_tag = /_(r|alpha|beta|pre|rc|off|p)(\d*)/
|
34
|
+
unless str =~ /^(#{re_cat_name}-)?([\d.]+)(#{re_tag})?(#.*)?$/
|
35
|
+
raise ArgumentError, "Cannot parse your version: #{str}"
|
32
36
|
end
|
37
|
+
category, name, head, _, tag, offset, release_name = Regexp.last_match[2..8]
|
38
|
+
parts = head.split('.').map { |x| x.to_i }
|
39
|
+
raise ArgumentError, "Too many parts: #{head}" if parts.size > 2
|
40
|
+
major, minor = parts
|
41
|
+
|
42
|
+
# Remove now useless chars (/, #)
|
43
|
+
category[-1] = '' if category
|
44
|
+
release_name[0] = '' if release_name
|
45
|
+
|
46
|
+
tag = (tag.nil?)? :off : tag.to_sym
|
47
|
+
new(major || 0, minor || 0, tag, offset.to_i,
|
48
|
+
category || '', name || '', release_name || '')
|
33
49
|
end
|
34
50
|
|
35
|
-
def
|
36
|
-
|
51
|
+
def self.yaml_new( klass, tag, val )
|
52
|
+
parse val
|
53
|
+
end
|
54
|
+
|
55
|
+
def <=>(other)
|
56
|
+
category_cmp = @category <=> other.category
|
57
|
+
return category_cmp unless category_cmp.zero?
|
58
|
+
|
59
|
+
name_cmp = @name <=> other.name
|
60
|
+
return name_cmp unless name_cmp.zero?
|
61
|
+
|
62
|
+
major_cmp = @major <=> other.major
|
63
|
+
return major_cmp unless major_cmp.zero?
|
64
|
+
|
65
|
+
minor_cmp = @minor <=> other.minor
|
66
|
+
return minor_cmp unless minor_cmp.zero?
|
67
|
+
|
68
|
+
@tag <=> other.tag
|
69
|
+
end
|
70
|
+
|
71
|
+
def official?
|
72
|
+
@tag.name == :off
|
73
|
+
end
|
74
|
+
|
75
|
+
def major_minor
|
76
|
+
"#@major.#@minor"
|
77
|
+
end
|
78
|
+
|
79
|
+
def tag_string
|
80
|
+
(official?)? '' : "_#{@tag.name}#{(@tag.offset.zero?)? '' : @tag.offset}"
|
81
|
+
end
|
82
|
+
|
83
|
+
def category_and_name
|
84
|
+
(@name.empty?)? '' : ((@category.empty?)? "#@name-" : "#@category/#@name-")
|
37
85
|
end
|
38
86
|
|
39
87
|
def to_s
|
40
|
-
|
88
|
+
s = category_and_name + major_minor + tag_string
|
89
|
+
s << '#' << @release_name unless @release_name.empty?
|
90
|
+
s
|
91
|
+
end
|
92
|
+
|
93
|
+
def short_string
|
94
|
+
s = ''
|
95
|
+
s << @name << '-' unless @name.empty?
|
96
|
+
s << major_minor << tag_string
|
41
97
|
end
|
42
98
|
|
43
99
|
def inspect
|
44
|
-
"
|
100
|
+
"#<Version: #{to_s}>"
|
101
|
+
end
|
102
|
+
|
103
|
+
def to_rubygems_version_string
|
104
|
+
to_positive_integers.join '.'
|
105
|
+
end
|
106
|
+
|
107
|
+
def to_yaml ( opts={} )
|
108
|
+
YAML::quick_emit nil, opts do |out|
|
109
|
+
out.scalar taguri, to_s, :plain
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def pp
|
114
|
+
more = ''
|
115
|
+
more << " #@release_name" unless @release_name.empty?
|
116
|
+
"#{@tag.pp}: #{major_minor}#{more}"
|
45
117
|
end
|
46
118
|
|
47
119
|
def to_a
|
48
|
-
[ @major, @minor, @
|
120
|
+
[ @major, @minor, @tag.name, @tag.offset ]
|
121
|
+
end
|
122
|
+
|
123
|
+
def to_positive_integers
|
124
|
+
[@major, @minor, @tag.rank + 5, @tag.offset]
|
49
125
|
end
|
50
126
|
|
51
127
|
def major_release
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
128
|
+
release do |r|
|
129
|
+
r.major += 1
|
130
|
+
r.minor = 0
|
131
|
+
r.tag = Tag[:alpha, 0]
|
132
|
+
end
|
57
133
|
end
|
58
134
|
|
59
135
|
def minor_release
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
136
|
+
release do |r|
|
137
|
+
r.minor += 1
|
138
|
+
r.tag = Tag[:alpha, 0]
|
139
|
+
end
|
64
140
|
end
|
65
141
|
|
66
|
-
def
|
67
|
-
|
68
|
-
|
69
|
-
|
142
|
+
def new_tag_release ( new_tag )
|
143
|
+
release do |r|
|
144
|
+
r.tag = Tag[new_tag, (new_tag == :p)? 1 : 0]
|
145
|
+
end
|
70
146
|
end
|
147
|
+
private :new_tag_release
|
71
148
|
|
72
|
-
|
149
|
+
def incr_tag_release
|
150
|
+
raise ArgumentError, "Impossible it's an official release" if official?
|
151
|
+
release do |r|
|
152
|
+
r.tag.offset += 1
|
153
|
+
end
|
154
|
+
end
|
155
|
+
private :incr_tag_release
|
73
156
|
|
157
|
+
def tag_release ( tag )
|
158
|
+
return incr_tag_release if @tag.name == tag
|
74
159
|
|
75
|
-
|
160
|
+
dest = new_tag_release tag
|
161
|
+
off = new_tag_release :off
|
162
|
+
if self < dest and dest <= off
|
163
|
+
dest
|
164
|
+
elsif off <= self and self < dest
|
165
|
+
dest
|
166
|
+
elsif self < off and off < dest
|
167
|
+
raise ArgumentError,
|
168
|
+
"You need to be at least on an official release (not #{self}) to go on #{dest}"
|
169
|
+
elsif dest < self
|
170
|
+
raise ArgumentError, "You cannot downgrade (#{self} to #{dest})"
|
171
|
+
else
|
172
|
+
raise ArgumentError, "Unhandled case: self=#{self}, dest=#{dest}, off=#{off}"
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
def patch_level_release
|
177
|
+
tag_release :p
|
178
|
+
end
|
179
|
+
|
180
|
+
def official_release
|
181
|
+
tag_release :off
|
182
|
+
end
|
76
183
|
|
184
|
+
def release_candidate
|
185
|
+
tag_release :rc
|
186
|
+
end
|
187
|
+
|
188
|
+
def pre_release
|
189
|
+
tag_release :pre
|
190
|
+
end
|
191
|
+
|
192
|
+
def beta_release
|
193
|
+
tag_release :beta
|
194
|
+
end
|
195
|
+
|
196
|
+
def alpha_release
|
197
|
+
tag_release :alpha
|
198
|
+
end
|
199
|
+
|
200
|
+
def release ( &block )
|
201
|
+
x = dup
|
202
|
+
x.instance_eval { block[self] }
|
203
|
+
x
|
204
|
+
end
|
205
|
+
|
206
|
+
class Tag
|
207
|
+
attr_accessor :name, :descr, :rank, :offset
|
208
|
+
|
209
|
+
def initialize ( name, descr, rank, offset )
|
210
|
+
@name, @descr, @rank, @offset = name, descr, rank, offset
|
211
|
+
end
|
212
|
+
|
213
|
+
def pp
|
214
|
+
(offset.zero?)? descr : "#{descr} ##{offset}"
|
215
|
+
end
|
216
|
+
|
217
|
+
def <=> ( other )
|
218
|
+
cmp = @rank <=> other.rank
|
219
|
+
return cmp unless cmp.zero?
|
220
|
+
@offset <=> other.offset
|
221
|
+
end
|
222
|
+
|
223
|
+
class << self
|
224
|
+
@@tags = {}
|
225
|
+
def [] ( name, offset )
|
226
|
+
f = @@tags[name]
|
227
|
+
raise ArgumentError, "Unknown tag ``#{name}''" if f.nil?
|
228
|
+
f[offset]
|
229
|
+
end
|
230
|
+
def tag ( name, descr, rank )
|
231
|
+
@@tags[name] = lambda { |offset| Tag.new(name, descr, rank, offset) }
|
232
|
+
end
|
233
|
+
end
|
234
|
+
|
235
|
+
tag :r, 'Revision', -5
|
236
|
+
tag :alpha, 'Alpha Release', -4
|
237
|
+
tag :beta, 'Beta Release', -3
|
238
|
+
tag :pre, 'Pre Release', -2
|
239
|
+
tag :rc, 'Release Candidate', -1
|
240
|
+
tag :off, 'Official Release', 0
|
241
|
+
tag :p, 'Official Release Patch Level', 1 # should always be followed by an int
|
242
|
+
end
|
243
|
+
|
244
|
+
module ShortCut
|
245
|
+
def ` ( arg )
|
246
|
+
Version.parse arg
|
247
|
+
end
|
248
|
+
end
|
249
|
+
end # class Version
|
250
|
+
|
251
|
+
test_section __FILE__ do
|
77
252
|
|
78
253
|
class VersionTest < Test::Unit::TestCase
|
79
254
|
|
255
|
+
|
256
|
+
include Version::ShortCut
|
257
|
+
|
80
258
|
def setup
|
81
|
-
@a = Version.new(0, 1
|
82
|
-
@b = Version.new(2,
|
83
|
-
@c = Version.new(0, 0
|
259
|
+
@a = Version.new(0, 1)
|
260
|
+
@b = Version.new(2, 0)
|
261
|
+
@c = Version.new(0, 0)
|
262
|
+
@a_rc2 = Version.new(0, 1, :rc, 2)
|
263
|
+
@b_p3 = Version.new(2, 0, :p, 3)
|
264
|
+
@a_alpha = Version.new(0, 1, :alpha)
|
265
|
+
@a_pre4 = Version.new(0, 1, :pre, 4)
|
266
|
+
@a_beta2 = Version.new(0, 1, :beta, 2)
|
267
|
+
@a_r463 = Version.new(0, 1, :r, 463)
|
84
268
|
end
|
85
269
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
270
|
+
def test_parse
|
271
|
+
assert_equal @a, Version.parse('0.1')
|
272
|
+
assert_equal @a_r463, Version.parse('0.1_r463')
|
273
|
+
assert_raise(ArgumentError) { Version.parse('0.1.2') }
|
274
|
+
assert_raise(ArgumentError) { Version.parse('0.1-r2') }
|
275
|
+
assert_raise(ArgumentError) { Version.parse('0.1.r2') }
|
276
|
+
assert_raise(ArgumentError) { Version.parse('0.1.3-r2') }
|
277
|
+
assert_raise(ArgumentError) { Version.parse('0.1.3.4') }
|
278
|
+
assert_equal @b, Version.parse('2.0')
|
279
|
+
assert_equal @c, Version.parse('0.0')
|
280
|
+
assert_equal @c, Version.parse('0')
|
281
|
+
assert_equal @a_rc2, Version.parse('0.1_rc2')
|
282
|
+
assert_equal @a_alpha, Version.parse('0.1_alpha')
|
283
|
+
assert_equal @a_alpha, Version.parse('0.1_alpha0')
|
284
|
+
assert_equal @b_p3, Version.parse('2.0_p3')
|
285
|
+
assert_equal @a_pre4, Version.parse('0.1_pre4')
|
286
|
+
assert_equal @a_beta2, Version.parse('0.1_beta2')
|
287
|
+
foo_bar = Version.new(1, 3, :r, 42144, 'dev-util', 'foo', 'bar')
|
288
|
+
assert_equal foo_bar, `dev-util/foo-1.3_r42144#bar`
|
289
|
+
foo_bar = Version.new(1, 3, :pre, 4, 'dev-util', 'foo', 'bar')
|
290
|
+
assert_equal foo_bar, `dev-util/foo-1.3_pre4#bar`
|
291
|
+
foo_bar = Version.new(1, 2, :pre, 4, '', 'foo', 'bar')
|
292
|
+
assert_equal foo_bar, `foo-1.2_pre4#bar`
|
293
|
+
foo = Version.new(1, 2, :pre, 4, '', 'foo')
|
294
|
+
assert_equal foo_bar, `foo-1.2_pre4#bar`
|
96
295
|
end
|
97
296
|
|
98
|
-
def
|
99
|
-
|
100
|
-
|
297
|
+
def test_comparison
|
298
|
+
assert `2.3` < `2.4`
|
299
|
+
assert `2.4` > `2.3`
|
300
|
+
assert `2.3` == `2.3`
|
301
|
+
assert `3.3` > `2.3`
|
302
|
+
assert `2.3` < `3.3`
|
303
|
+
assert `1.2_rc` < `1.2`
|
304
|
+
assert `1.2_p1` > `1.2`
|
305
|
+
assert `1.2_alpha` < `1.2_beta`
|
306
|
+
assert `1.2_pre` != `1.2`
|
307
|
+
assert `1.2_rc` == `1.2_rc0`
|
308
|
+
assert `1.3_pre` > `1.2_p12`
|
309
|
+
assert `1.3_alpha` > `1.2`
|
310
|
+
assert `3.2` > `2.12_p42`
|
311
|
+
assert `1.2_pre4` != `dev-util/foo-1.2_pre4#bar`
|
312
|
+
assert `dev-util/foo-1.2_pre4` == `dev-util/foo-1.2_pre4#bar`
|
101
313
|
end
|
102
314
|
|
103
315
|
def test_major_release
|
104
|
-
|
105
|
-
|
106
|
-
|
316
|
+
assert_equal `1.0_alpha`, @a.major_release
|
317
|
+
assert_equal `3.0_alpha`, @b.major_release
|
318
|
+
assert_equal `1.0_alpha`, @c.major_release
|
319
|
+
assert_equal `1.0_alpha`, @a_rc2.major_release
|
320
|
+
assert_equal `3.0_alpha`, @b_p3.major_release
|
321
|
+
assert_equal `1.0_alpha`, @a_alpha.major_release
|
322
|
+
assert_equal `1.0_alpha`, @a_beta2.major_release
|
107
323
|
end
|
108
324
|
|
109
325
|
def test_minor_release
|
110
|
-
|
111
|
-
|
112
|
-
|
326
|
+
assert_equal `0.2_alpha`, @a.minor_release
|
327
|
+
assert_equal `2.1_alpha`, @b.minor_release
|
328
|
+
assert_equal `0.1_alpha`, @c.minor_release
|
329
|
+
assert_equal `0.2_alpha`, @a_rc2.minor_release
|
113
330
|
end
|
114
331
|
|
115
|
-
def
|
116
|
-
|
117
|
-
|
118
|
-
|
332
|
+
def test_tag_releases
|
333
|
+
assert_equal `0.2_p2`, `0.1`.minor_release.alpha_release.beta_release.
|
334
|
+
beta_release.pre_release.release_candidate.release_candidate.
|
335
|
+
official_release.patch_level_release.patch_level_release
|
336
|
+
assert_equal `0.2`, `0.1`.minor_release.official_release
|
337
|
+
assert_raise ArgumentError do
|
338
|
+
`0.1`.minor_release.official_release.official_release
|
339
|
+
end
|
340
|
+
assert_equal `1.0_rc1`, `0.9_p42`.major_release.alpha_release.
|
341
|
+
beta_release.release_candidate.release_candidate
|
342
|
+
assert_equal `1.0_alpha2`, `1.0_alpha1`.alpha_release
|
119
343
|
end
|
120
344
|
|
121
345
|
def test_pp
|
122
|
-
assert_equal
|
123
|
-
assert_equal
|
124
|
-
assert_equal
|
346
|
+
assert_equal 'Revision #462: 0.1', `0.1_r462`.pp
|
347
|
+
assert_equal 'Official Release: 0.1', @a.pp
|
348
|
+
assert_equal 'Official Release: 2.0', @b.pp
|
349
|
+
assert_equal 'Official Release: 0.0', @c.pp
|
350
|
+
assert_equal 'Alpha Release: 0.1', @a_alpha.pp
|
351
|
+
assert_equal 'Official Release Patch Level #3: 2.0', @b_p3.pp
|
352
|
+
assert_equal 'Pre Release #4: 1.2 bar', `dev-util/foo-1.2_pre4#bar`.pp
|
353
|
+
end
|
354
|
+
|
355
|
+
def test_to_s
|
356
|
+
assert_equal '1.2_r3', `1.2_r3`.to_s
|
357
|
+
assert_equal '1.0_p5', `1_p5`.to_s
|
358
|
+
assert_equal 'dev-util/foo-1.2_pre4#bar', `dev-util/foo-1.2_pre4#bar`.to_s
|
359
|
+
end
|
360
|
+
|
361
|
+
def test_short_string
|
362
|
+
assert_equal '1.0', `1`.short_string
|
363
|
+
assert_equal '1.0_p5', `1_p5`.short_string
|
364
|
+
assert_equal 'foo-1.2_pre4', `dev-util/foo-1.2_pre4#bar`.short_string
|
125
365
|
end
|
126
366
|
|
127
367
|
end # class VersionTest
|
data/lib/yaml_extension.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: yaml_extension.rb
|
4
|
+
# Revision:: $Id: /w/fey/ruby_ex/trunk/core_ex/lib/yaml_extension.rb 7988 2005-10-02T16:48:09.029068Z ertai $
|
5
5
|
|
6
6
|
require 'yaml'
|
7
7
|
|