rant 0.5.0 → 0.5.2
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/NEWS +30 -0
- data/README +4 -1
- data/Rantfile +28 -8
- data/doc/advanced.rdoc +19 -70
- data/doc/filelist.rdoc +963 -0
- data/doc/homepage/index.html +8 -2
- data/doc/rantfile.rdoc +7 -25
- data/doc/rubylib.rdoc +27 -0
- data/doc/sys.rdoc +15 -2
- data/doc/sys_filelist.rdoc +118 -0
- data/lib/rant.rb +1 -1
- data/lib/rant/cs_compiler.rb +4 -4
- data/lib/rant/filelist.rb +8 -0
- data/lib/rant/import/archive.rb +6 -6
- data/lib/rant/import/filelist/core.rb +429 -0
- data/lib/rant/import/filelist/inspect.rb +57 -0
- data/lib/rant/import/filelist/std.rb +64 -0
- data/lib/rant/import/nodes/default.rb +6 -2
- data/lib/rant/import/rubypackage.rb +10 -0
- data/lib/rant/init.rb +200 -0
- data/lib/rant/rantlib.rb +98 -111
- data/lib/rant/rantsys.rb +86 -455
- data/lib/rant/rantvar.rb +1 -7
- data/test/import/directedrule/Rantfile +1 -1
- data/test/lib/test_filelist.rb +481 -0
- data/test/test_filelist.rb +135 -13
- data/test/test_sys.rb +4 -0
- data/test/test_sys_methods.rb +9 -0
- data/test/tutil.rb +37 -15
- metadata +18 -7
- data/lib/rant/rantenv.rb +0 -184
- data/test/deprecated/test_0_5_2.rb +0 -61
data/lib/rant/rantvar.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
# rantvar.rb -
|
2
|
+
# rantvar.rb - Support for the +var+ method in Rantfiles.
|
3
3
|
#
|
4
4
|
# Copyright (C) 2005 Stefan Lang <langstefan@gmx.at>
|
5
5
|
#
|
@@ -17,7 +17,6 @@
|
|
17
17
|
# README[link:files/README.html].
|
18
18
|
|
19
19
|
module Rant
|
20
|
-
VERSION = '0.5.0'
|
21
20
|
|
22
21
|
# Those are the filenames for rantfiles.
|
23
22
|
# Case matters!
|
@@ -44,11 +43,6 @@ module Rant
|
|
44
43
|
module Generators
|
45
44
|
end
|
46
45
|
|
47
|
-
@__rant_no_value__ = Object.new.freeze
|
48
|
-
def self.__rant_no_value__
|
49
|
-
@__rant_no_value__
|
50
|
-
end
|
51
|
-
|
52
46
|
module RantVar
|
53
47
|
|
54
48
|
class Error < Rant::Error
|
@@ -0,0 +1,481 @@
|
|
1
|
+
|
2
|
+
require 'test/unit'
|
3
|
+
require 'tutil'
|
4
|
+
require 'rant/filelist'
|
5
|
+
require 'rant/import/sys/more'
|
6
|
+
|
7
|
+
$test_lib_dir ||= File.expand_path(File.dirname(__FILE__))
|
8
|
+
|
9
|
+
class TestRantFileList < Test::Unit::TestCase
|
10
|
+
include Rant::TestUtil
|
11
|
+
def assert_entries(entry_ary, fl)
|
12
|
+
assert_equal entry_ary.size, fl.size
|
13
|
+
entry_ary.each { |entry| assert fl.include?(entry) }
|
14
|
+
end
|
15
|
+
def setup
|
16
|
+
# Ensure we run in test directory.
|
17
|
+
Dir.chdir($test_lib_dir)
|
18
|
+
end
|
19
|
+
def test_require
|
20
|
+
in_local_temp_dir do
|
21
|
+
Rant::Sys.write_to_file "fl.rb", <<-EOF
|
22
|
+
require 'rant/filelist'
|
23
|
+
File.open("out", "w") do |f|
|
24
|
+
f.puts Rant::FileList["*.{rb,t}"].sort!
|
25
|
+
end
|
26
|
+
EOF
|
27
|
+
Rant::Sys.touch "a.t"
|
28
|
+
Rant::Sys.ruby "-I", ENV["RANT_DEV_LIB_DIR"], "fl.rb"
|
29
|
+
assert_equal "a.t\nfl.rb\n", File.read("out")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
def test_create_new
|
33
|
+
fl = Rant::FileList.new
|
34
|
+
assert_equal [], fl.entries
|
35
|
+
in_local_temp_dir do
|
36
|
+
Rant::Sys.touch ["a.t", ".a.t"]
|
37
|
+
fl.include "*.t"
|
38
|
+
assert_entries(["a.t", ".a.t"], fl)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
def test_create_new_with_ary
|
42
|
+
ary = ["foo", "bar"]
|
43
|
+
fl = Rant::FileList.new(ary)
|
44
|
+
assert_equal ["foo", "bar"], fl.entries
|
45
|
+
end
|
46
|
+
def test_create_bracket_op
|
47
|
+
in_local_temp_dir do
|
48
|
+
Rant::Sys.touch ["a.t", ".a.t"]
|
49
|
+
fl = Rant::FileList["*.t"]
|
50
|
+
assert_entries(["a.t"], fl)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
def test_create_glob
|
54
|
+
in_local_temp_dir do
|
55
|
+
Rant::Sys.touch ["a.t", ".a.t"]
|
56
|
+
fl = Rant::FileList.glob("*.t")
|
57
|
+
assert_entries(["a.t"], fl)
|
58
|
+
fl = Rant::FileList.glob(".*.t")
|
59
|
+
# note: no "." and ".." entries
|
60
|
+
assert_entries([".a.t"], fl)
|
61
|
+
fl = Rant::FileList.glob("*.t") do |fl|
|
62
|
+
fl.glob ".*.t"
|
63
|
+
end
|
64
|
+
assert_equal ["a.t", ".a.t"], fl.entries
|
65
|
+
end
|
66
|
+
end
|
67
|
+
def test_create_glob_all
|
68
|
+
in_local_temp_dir do
|
69
|
+
Rant::Sys.touch ["a.t", ".a.t"]
|
70
|
+
fl = Rant::FileList.glob_all("*.t")
|
71
|
+
assert_entries(["a.t", ".a.t"], fl)
|
72
|
+
fl = Rant::FileList.glob_all(".*.t")
|
73
|
+
# note: no "." and ".." entries
|
74
|
+
assert_entries([".a.t"], fl)
|
75
|
+
fl = Rant::FileList.glob_all("*.t") do |fl|
|
76
|
+
fl.keep(".")
|
77
|
+
end
|
78
|
+
assert_entries ["a.t", ".a.t", "."], fl
|
79
|
+
end
|
80
|
+
end
|
81
|
+
def test_conversion_from_filelist
|
82
|
+
fl1 = Rant::FileList.new
|
83
|
+
fl2 = Rant::FileList(fl1)
|
84
|
+
assert fl1.equal?(fl2) # same object
|
85
|
+
end
|
86
|
+
def test_conversion_from_ary
|
87
|
+
fl = Rant::FileList(["foo", "bar"])
|
88
|
+
assert fl.kind_of?(Rant::FileList)
|
89
|
+
assert_equal ["foo", "bar"], fl.entries
|
90
|
+
end
|
91
|
+
def test_conversion_from_to_ary
|
92
|
+
obj = Object.new
|
93
|
+
def obj.to_ary
|
94
|
+
["foo", "bar"]
|
95
|
+
end
|
96
|
+
fl = Rant::FileList(obj)
|
97
|
+
assert fl.kind_of?(Rant::FileList)
|
98
|
+
assert_equal ["foo", "bar"], fl.entries
|
99
|
+
end
|
100
|
+
def test_conversion_from_to_rant_filelist
|
101
|
+
obj = Object.new
|
102
|
+
def obj.to_rant_filelist
|
103
|
+
Rant::FileList.new ["foo", "bar"]
|
104
|
+
end
|
105
|
+
fl = Rant::FileList(obj)
|
106
|
+
assert fl.kind_of?(Rant::FileList)
|
107
|
+
assert_equal ["foo", "bar"], fl.entries
|
108
|
+
end
|
109
|
+
# note: this behaviour might change
|
110
|
+
def test_conversion_type_error_string
|
111
|
+
assert_raise_kind_of(TypeError) do
|
112
|
+
fl = Rant::FileList("some_string")
|
113
|
+
end
|
114
|
+
end
|
115
|
+
def test_conversion_type_error
|
116
|
+
assert_raise_kind_of(TypeError) do
|
117
|
+
fl = Rant::FileList(Object.new)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
def test_each
|
121
|
+
in_local_temp_dir do
|
122
|
+
Rant::Sys.touch ["a.t", "b.t", "c.t"]
|
123
|
+
ary = []
|
124
|
+
fl = Rant::FileList["*.t"]
|
125
|
+
assert(fl.each { |fn|
|
126
|
+
ary << fn
|
127
|
+
}.equal?(fl))
|
128
|
+
assert_entries ["a.t", "b.t", "c.t"], ary
|
129
|
+
end
|
130
|
+
end
|
131
|
+
def test_enumerable_find
|
132
|
+
fl = Rant::FileList.new ["bb", "aa", "c", "d", "a"]
|
133
|
+
assert_equal "aa", fl.find { |fn| fn =~ /a/ }
|
134
|
+
end
|
135
|
+
def test_glob
|
136
|
+
in_local_temp_dir do
|
137
|
+
all = ["a.t", "b.t", "c.t", ".a.t"]
|
138
|
+
Rant::Sys.touch all
|
139
|
+
fl = Rant::FileList.new
|
140
|
+
assert fl.include("*.t").equal?(fl)
|
141
|
+
assert_entries all, fl
|
142
|
+
fl = Rant::FileList.new
|
143
|
+
assert fl.glob("*.t").equal?(fl)
|
144
|
+
assert_entries all, fl
|
145
|
+
fl = Rant::FileList.new
|
146
|
+
fl.hide_dotfiles
|
147
|
+
fl.glob "*.t"
|
148
|
+
assert_entries all - [".a.t"], fl
|
149
|
+
fl = Rant::FileList.new
|
150
|
+
fl.glob "*a*", "*c*"
|
151
|
+
assert_entries ["a.t", "c.t", ".a.t"], fl
|
152
|
+
assert fl.entries.index("a.t") < fl.entries.index("c.t")
|
153
|
+
end
|
154
|
+
end
|
155
|
+
def test_exclude
|
156
|
+
fl = Rant::FileList(["a.rb", "b.t", "foo_bar"])
|
157
|
+
assert fl.exclude("*.rb").equal?(fl)
|
158
|
+
assert_entries ["b.t", "foo_bar"], fl
|
159
|
+
|
160
|
+
fl.concat ["b.rb", "a.rb"]
|
161
|
+
assert_entries ["b.t", "foo_bar", "b.rb", "a.rb"], fl
|
162
|
+
end
|
163
|
+
def test_exclude_regexp
|
164
|
+
fl = Rant::FileList(["a.rb", "b.t", "foo_bar"])
|
165
|
+
fl.exclude %r{_}
|
166
|
+
assert_entries ["a.rb", "b.t"], fl
|
167
|
+
|
168
|
+
Rant::Sys.touch "a_b.t"
|
169
|
+
fl.include "*.t"
|
170
|
+
assert_entries ["a.rb", "b.t", "a_b.t"], fl
|
171
|
+
ensure
|
172
|
+
Rant::Sys.rm_f "a_b.t"
|
173
|
+
end
|
174
|
+
def test_exclude_more_args
|
175
|
+
fl = Rant::FileList(["a.rb", "b.t", "foo_bar"])
|
176
|
+
fl.exclude "*.t", /_/
|
177
|
+
assert_entries ["a.rb"], fl
|
178
|
+
end
|
179
|
+
def test_exclude_dotfiles_always
|
180
|
+
in_local_temp_dir do
|
181
|
+
Rant::Sys.touch [".a.t", "b.t", "c.t", "a.rb"]
|
182
|
+
fl = Rant::FileList[".*.{rb,t}", "*.{rb,t}"]
|
183
|
+
assert_entries [".a.t", "b.t", "c.t", "a.rb"], fl
|
184
|
+
fl.exclude "*.t"
|
185
|
+
assert_entries ["a.rb"], fl
|
186
|
+
end
|
187
|
+
end
|
188
|
+
def test_shun
|
189
|
+
fl = Rant::FileList(["a/CVS/b", "CVS", "CVS.rb", "cvs"])
|
190
|
+
assert fl.shun("CVS").equal?(fl)
|
191
|
+
assert_entries ["CVS.rb", "cvs"], fl
|
192
|
+
fl.push "CVS/foo"
|
193
|
+
assert_entries ["CVS/foo", "CVS.rb", "cvs"], fl
|
194
|
+
end
|
195
|
+
def test_exclude_name
|
196
|
+
fl = Rant::FileList(["a/CVS/b", "CVS", "CVS.rb", "cvs"])
|
197
|
+
assert fl.exclude_name("CVS").equal?(fl)
|
198
|
+
assert_entries ["CVS.rb", "cvs"], fl
|
199
|
+
fl.push "CVS/foo"
|
200
|
+
assert_entries ["CVS/foo", "CVS.rb", "cvs"], fl
|
201
|
+
end
|
202
|
+
def test_exclude_path
|
203
|
+
fl = Rant::FileList(["a.rb", "lib/b.rb", "lib/foo/c.rb"])
|
204
|
+
assert fl.exclude_path("lib/*.rb").equal?(fl)
|
205
|
+
assert_equal ["a.rb", "lib/foo/c.rb"], fl.entries
|
206
|
+
end
|
207
|
+
def test_exclude_vs_exclude_path
|
208
|
+
fl = Rant::FileList(["a.rb", "lib/b.rb", "lib/foo/c.rb"])
|
209
|
+
assert fl.exclude("lib/*.rb").equal?(fl)
|
210
|
+
assert_equal ["a.rb"], fl.entries
|
211
|
+
end
|
212
|
+
def test_ignore
|
213
|
+
fl = Rant::FileList(["a/CVS/b", "CVS", "CVS.rb", "cvs"])
|
214
|
+
assert fl.ignore("CVS").equal?(fl)
|
215
|
+
assert_entries ["CVS.rb", "cvs"], fl
|
216
|
+
fl.push "CVS/foo"
|
217
|
+
assert_entries ["CVS.rb", "cvs"], fl
|
218
|
+
end
|
219
|
+
def test_no_dir
|
220
|
+
in_local_temp_dir do
|
221
|
+
Rant::Sys.mkdir_p ["foo/bar", "baz"]
|
222
|
+
Rant::Sys.touch ["foo/bar/xy", "xy"]
|
223
|
+
fl = Rant::FileList["**/*"]
|
224
|
+
assert_entries ["foo", "foo/bar", "baz", "foo/bar/xy", "xy"], fl
|
225
|
+
assert fl.no_dir.equal?(fl)
|
226
|
+
assert_entries ["foo/bar/xy", "xy"], fl
|
227
|
+
end
|
228
|
+
end
|
229
|
+
def test_select
|
230
|
+
fl1 = Rant::FileList(["a", "b", "c.rb", "d.rb"])
|
231
|
+
fl2 = fl1.select { |fn| fn =~ /\.rb$/ }
|
232
|
+
assert fl2.kind_of?(Rant::FileList)
|
233
|
+
assert_entries ["c.rb", "d.rb"], fl2
|
234
|
+
assert_entries ["a", "b", "c.rb", "d.rb"], fl1
|
235
|
+
fl2.push "e.rb"
|
236
|
+
assert_entries ["c.rb", "d.rb", "e.rb"], fl2
|
237
|
+
assert_entries ["a", "b", "c.rb", "d.rb"], fl1
|
238
|
+
fl1.push "c"
|
239
|
+
assert_entries ["a", "b", "c", "c.rb", "d.rb"], fl1
|
240
|
+
assert_entries ["c.rb", "d.rb", "e.rb"], fl2
|
241
|
+
end
|
242
|
+
def test_map
|
243
|
+
fl1 = Rant::FileList(["a.rb", "b.rb"])
|
244
|
+
fl2 = fl1.map { |fn| "#{fn}~" }
|
245
|
+
assert_entries ["a.rb~", "b.rb~"], fl2
|
246
|
+
assert_entries ["a.rb", "b.rb"], fl1
|
247
|
+
fl1.push "foo"
|
248
|
+
assert_entries ["a.rb", "b.rb", "foo"], fl1
|
249
|
+
assert_entries ["a.rb~", "b.rb~"], fl2
|
250
|
+
end
|
251
|
+
def test_ext
|
252
|
+
fl1 = Rant::FileList(["a.c", "b.c"])
|
253
|
+
fl2 = fl1.ext("o")
|
254
|
+
assert fl2.kind_of?(Rant::FileList)
|
255
|
+
assert !fl1.equal?(fl2)
|
256
|
+
assert_entries ["a.c", "b.c"], fl1
|
257
|
+
assert_entries ["a.o", "b.o"], fl2
|
258
|
+
|
259
|
+
assert_entries ["a.txt"], Rant::FileList(["a"]).ext("txt")
|
260
|
+
end
|
261
|
+
def test_uniq!
|
262
|
+
fl = Rant::FileList(["a", "b", "a"])
|
263
|
+
assert fl.uniq!.equal?(fl)
|
264
|
+
assert_entries ["a", "b"], fl
|
265
|
+
assert fl.uniq!.equal?(fl)
|
266
|
+
assert_entries ["a", "b"], fl
|
267
|
+
end
|
268
|
+
def test_sort!
|
269
|
+
fl = Rant::FileList(["a", "c", "b"])
|
270
|
+
assert fl.sort!.equal?(fl)
|
271
|
+
assert_equal ["a", "b", "c"], fl.entries
|
272
|
+
assert fl.sort!.equal?(fl)
|
273
|
+
assert_equal ["a", "b", "c"], fl.entries
|
274
|
+
end
|
275
|
+
def test_map!
|
276
|
+
fl = Rant::FileList(["a", "b", "c"])
|
277
|
+
assert(fl.map! { |fn| "#{fn}.rb" }.equal?(fl))
|
278
|
+
assert_equal ["a.rb", "b.rb", "c.rb"], fl.entries
|
279
|
+
end
|
280
|
+
def test_reject!
|
281
|
+
fl = Rant::FileList(["a.rb", "b", "c", "d.rb"])
|
282
|
+
assert(fl.reject! { |fn| fn =~ /\.rb$/ }.equal?(fl))
|
283
|
+
assert_equal ["b", "c"], fl.entries
|
284
|
+
end
|
285
|
+
def resolve
|
286
|
+
fl = Rant::FileList(["a", "b"])
|
287
|
+
fl2 = nil
|
288
|
+
out = capture_stdout do
|
289
|
+
fl2 = fl.map { |fn| puts fn; "#{fn}.rb" }
|
290
|
+
assert fl2.resolve.equal?(fl2)
|
291
|
+
end
|
292
|
+
assert_equal "a\nb\n", out
|
293
|
+
end
|
294
|
+
def test_to_a
|
295
|
+
ary = Rant::FileList(["a", "b"]).to_a
|
296
|
+
assert ary.kind_of?(Array)
|
297
|
+
assert_equal ["a", "b"], ary
|
298
|
+
end
|
299
|
+
def test_to_ary
|
300
|
+
ary = Rant::FileList(["a", "b"]).to_ary
|
301
|
+
assert ary.kind_of?(Array)
|
302
|
+
assert_equal ["a", "b"], ary
|
303
|
+
end
|
304
|
+
|
305
|
+
# TODO: comprehensive testing of FileList#+ operator
|
306
|
+
|
307
|
+
def test_size
|
308
|
+
assert_equal 2, Rant::FileList(["a", "b"]).size
|
309
|
+
end
|
310
|
+
def test_empty?
|
311
|
+
fl = Rant::FileList(["a", "b"])
|
312
|
+
assert !fl.empty?
|
313
|
+
fl.exclude "a", "b"
|
314
|
+
assert fl.empty?
|
315
|
+
end
|
316
|
+
def test_join
|
317
|
+
fl = Rant::FileList(["a", "b"])
|
318
|
+
assert_equal "a b", fl.join
|
319
|
+
assert_equal "a\nb", fl.join("\n")
|
320
|
+
end
|
321
|
+
def test_pop
|
322
|
+
fl = Rant::FileList(["a", "b"])
|
323
|
+
assert_equal "b", fl.pop
|
324
|
+
assert_equal "a", fl.pop
|
325
|
+
assert_equal nil, fl.pop
|
326
|
+
assert_equal nil, fl.pop
|
327
|
+
end
|
328
|
+
def test_push
|
329
|
+
fl = Rant::FileList(["a", "b"])
|
330
|
+
assert fl.push("c").equal?(fl)
|
331
|
+
assert_equal ["a", "b", "c"], fl.entries
|
332
|
+
end
|
333
|
+
def test_shift
|
334
|
+
fl = Rant::FileList(["a", "b"])
|
335
|
+
assert_equal "a", fl.shift
|
336
|
+
assert_equal "b", fl.shift
|
337
|
+
assert_equal nil, fl.shift
|
338
|
+
assert_equal nil, fl.shift
|
339
|
+
end
|
340
|
+
def test_unshift
|
341
|
+
fl = Rant::FileList(["a", "b"])
|
342
|
+
assert fl.unshift("c").equal?(fl)
|
343
|
+
assert_equal ["c", "a", "b"], fl.entries
|
344
|
+
end
|
345
|
+
def test_keep
|
346
|
+
fl = Rant::FileList(["b.t"])
|
347
|
+
assert fl.keep("a.t").equal?(fl)
|
348
|
+
assert_entries ["b.t", "a.t"], fl
|
349
|
+
fl.exclude "*.t"
|
350
|
+
assert_entries ["a.t"], fl
|
351
|
+
fl.ignore "a.t"
|
352
|
+
assert_entries ["a.t"], fl
|
353
|
+
end
|
354
|
+
def test_to_rant_filelist
|
355
|
+
fl = Rant::FileList.new
|
356
|
+
assert fl.to_rant_filelist.equal?(fl)
|
357
|
+
end
|
358
|
+
def test_dup
|
359
|
+
fl1 = Rant::FileList(["a", "b"])
|
360
|
+
fl2 = fl1.dup
|
361
|
+
assert !fl1.equal?(fl2)
|
362
|
+
fl1.push "c"
|
363
|
+
assert_entries ["a", "b", "c"], fl1
|
364
|
+
assert_entries ["a", "b"], fl2
|
365
|
+
end
|
366
|
+
def test_copy
|
367
|
+
fl1 = Rant::FileList(["a", "b"])
|
368
|
+
fl2 = fl1.copy
|
369
|
+
fl1.each { |fn| fn << ".rb" }
|
370
|
+
assert_entries ["a.rb", "b.rb"], fl1
|
371
|
+
assert_entries ["a", "b"], fl2
|
372
|
+
end
|
373
|
+
def test_hide_dotfiles
|
374
|
+
fl = Rant::FileList.new
|
375
|
+
in_local_temp_dir do
|
376
|
+
Rant::Sys.touch ["a.t", ".a.t"]
|
377
|
+
assert fl.hide_dotfiles.equal?(fl)
|
378
|
+
fl.glob "*.t"
|
379
|
+
assert_entries ["a.t"], fl
|
380
|
+
end
|
381
|
+
end
|
382
|
+
def test_glob_dotfiles
|
383
|
+
fl = Rant::FileList.new
|
384
|
+
fl.glob_dotfiles = false
|
385
|
+
in_local_temp_dir do
|
386
|
+
Rant::Sys.touch ["a.t", ".a.t"]
|
387
|
+
assert fl.glob_dotfiles.equal?(fl)
|
388
|
+
fl.glob "*.t"
|
389
|
+
assert_entries [".a.t", "a.t"], fl
|
390
|
+
end
|
391
|
+
end
|
392
|
+
def test_concat
|
393
|
+
fl = Rant::FileList(["a"])
|
394
|
+
assert fl.concat(["b", "c"]).equal?(fl)
|
395
|
+
assert_equal ["a", "b", "c"], fl.entries
|
396
|
+
end
|
397
|
+
def test_concat_after_include_with_ignore
|
398
|
+
in_local_temp_dir do
|
399
|
+
Rant::Sys.touch ["a.1", "a.2", "b.1", "b.2"]
|
400
|
+
fl = Rant::FileList.new
|
401
|
+
fl.ignore %r{^a.*1$}
|
402
|
+
fl.include "*.[12]"
|
403
|
+
fl.concat ["abc1", "abc3"]
|
404
|
+
assert_entries ["a.2", "b.1", "b.2", "abc3"], fl
|
405
|
+
assert_equal 3, fl.entries.index("abc3")
|
406
|
+
end
|
407
|
+
end
|
408
|
+
def test_concat_with_ignore
|
409
|
+
fl = Rant::FileList.new.ignore("foo")
|
410
|
+
fl.concat ["foo", "bar", "bar/foo", "baz"]
|
411
|
+
assert_entries ["bar", "baz"], fl
|
412
|
+
end
|
413
|
+
def test_inspect
|
414
|
+
assert_nothing_raised do
|
415
|
+
assert Rant::FileList.new.inspect.kind_of?(String)
|
416
|
+
end
|
417
|
+
end
|
418
|
+
def test_object_inspect
|
419
|
+
assert_nothing_raised do
|
420
|
+
assert Rant::FileList.new.object_inspect.kind_of?(String)
|
421
|
+
end
|
422
|
+
end
|
423
|
+
def test_to_s
|
424
|
+
out = ext_rb_test <<-'EOF', :touch => ["a.c", "b.c"], :return => :stdout
|
425
|
+
require 'rant/filelist'
|
426
|
+
print "#{Rant::FileList['*.c']}"
|
427
|
+
EOF
|
428
|
+
assert_equal "a.c b.c", out
|
429
|
+
end
|
430
|
+
def test_no_dir_with_arg
|
431
|
+
files = ["a/bc/d.t", "xy/f.t", "a.t"]
|
432
|
+
out = ext_rb_test <<-'EOF', :touch => files, :return => :stdout
|
433
|
+
require 'rant/filelist'
|
434
|
+
puts Rant::FileList["**/*.t"].no_dir("bc")
|
435
|
+
EOF
|
436
|
+
lines = out.split(/\n/)
|
437
|
+
assert_equal ["a.t", "xy/f.t"], lines.sort
|
438
|
+
end
|
439
|
+
def test_files
|
440
|
+
files = ["a/bc/d.t", "xy/f.t", "a.t"]
|
441
|
+
out = ext_rb_test <<-'EOF', :touch => files, :return => :stdout
|
442
|
+
require 'rant/filelist'
|
443
|
+
puts Rant::FileList["**/*"].exclude("*.rb").files
|
444
|
+
EOF
|
445
|
+
lines = out.split(/\n/)
|
446
|
+
assert_entries ["a/bc/d.t", "a.t", "xy/f.t"], lines
|
447
|
+
end
|
448
|
+
def test_dirs
|
449
|
+
files = ["a/bc/d.t", "xy/f.t", "a.t"]
|
450
|
+
out = ext_rb_test <<-'EOF', :touch => files, :return => :stdout
|
451
|
+
require 'rant/filelist'
|
452
|
+
puts Rant::FileList["**/*"].exclude("*.rb").dirs
|
453
|
+
EOF
|
454
|
+
lines = out.split(/\n/)
|
455
|
+
assert_entries ["a", "a/bc", "xy"], lines
|
456
|
+
end
|
457
|
+
def test_rant_version
|
458
|
+
ext_rb_test <<-'EOF'
|
459
|
+
require 'rant/filelist'
|
460
|
+
if defined?(Rant::VERSION) && Rant::VERSION =~ /\d+\.\d+\.\d+/
|
461
|
+
exit 0
|
462
|
+
end
|
463
|
+
exit 1
|
464
|
+
EOF
|
465
|
+
end
|
466
|
+
def test_rant_sys_regular_filename
|
467
|
+
out = nil
|
468
|
+
if Rant::Env.on_windows?
|
469
|
+
out = ext_rb_test <<-'EOF', :return => :stdout
|
470
|
+
require 'rant/filelist'
|
471
|
+
print Rant::Sys.regular_filename('foo\bar/baz')
|
472
|
+
EOF
|
473
|
+
else
|
474
|
+
out = ext_rb_test <<-'EOF', :return => :stdout
|
475
|
+
require 'rant/filelist'
|
476
|
+
print Rant::Sys.regular_filename('foo//bar/baz')
|
477
|
+
EOF
|
478
|
+
end
|
479
|
+
assert_equal "foo/bar/baz", out
|
480
|
+
end
|
481
|
+
end
|