rant 0.5.0 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|