rak 0.8.0
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/History.txt +5 -0
- data/Manifest.txt +8 -0
- data/README.txt +66 -0
- data/Rakefile +14 -0
- data/bin/rak +797 -0
- data/lib/rak.rb +4 -0
- data/spec/help_spec.rb +50 -0
- data/spec/rak_spec.rb +500 -0
- metadata +64 -0
data/lib/rak.rb
ADDED
data/spec/help_spec.rb
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + "/spec_helpers"
|
4
|
+
|
5
|
+
describe "Rak", "help and errors" do
|
6
|
+
before(:all) do
|
7
|
+
ENV['RAK_TEST'] = "true"
|
8
|
+
end
|
9
|
+
after(:all) do
|
10
|
+
ENV['RAK_TEST'] = "false"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "--version prints version information" do
|
14
|
+
strip_ansi(%x{rak --version}).should == t=<<END
|
15
|
+
rak 0.0.1
|
16
|
+
|
17
|
+
Copyright 2007 Daniel Lucraft, all rights reserved.
|
18
|
+
Based on the perl tool 'ack' by Andy Lester.
|
19
|
+
|
20
|
+
This program is free software; you can redistribute it and/or modify it
|
21
|
+
under the same terms as Ruby.
|
22
|
+
END
|
23
|
+
end
|
24
|
+
|
25
|
+
it "prints unknown type errors" do
|
26
|
+
%x{rak Virg --type=pyth}.should == t=<<END
|
27
|
+
rak: Unknown --type "pyth"
|
28
|
+
rak: See rak --help types
|
29
|
+
END
|
30
|
+
end
|
31
|
+
|
32
|
+
it "--help prints help information" do
|
33
|
+
%x{rak Virg --help}.split("\n")[0].should == "Usage: rak [OPTION]... PATTERN [FILES]"
|
34
|
+
end
|
35
|
+
|
36
|
+
it "--help types prints type information" do
|
37
|
+
%x{rak --help types}.split("\n")[2].should == "The following is the list of filetypes supported by rak. You can"
|
38
|
+
end
|
39
|
+
|
40
|
+
it "no options or patterns prints the usage info" do
|
41
|
+
%x{rak}.split("\n")[0].should == "Usage: rak [OPTION]... PATTERN [FILES]"
|
42
|
+
end
|
43
|
+
|
44
|
+
it "prints a nice message for unknown options" do
|
45
|
+
t=<<END
|
46
|
+
rak: see rak --help for usage.
|
47
|
+
END
|
48
|
+
%x{rak foo --asfdasfd}.include?(t).should be_true
|
49
|
+
end
|
50
|
+
end
|
data/spec/rak_spec.rb
ADDED
@@ -0,0 +1,500 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + "/spec_helpers"
|
4
|
+
|
5
|
+
describe "Rak", "with no options" do
|
6
|
+
before(:all) do
|
7
|
+
ENV['RAK_TEST'] = "true"
|
8
|
+
end
|
9
|
+
after(:all) do
|
10
|
+
ENV['RAK_TEST'] = "false"
|
11
|
+
end
|
12
|
+
it "prints all matches from files in the current directory" do
|
13
|
+
asterize_ansi(%x{rak Cap.ic}).should == t=<<END
|
14
|
+
*foo.rb*
|
15
|
+
3|foo foo foo *Capric*a foo foo foo
|
16
|
+
4|foo *Capsic*um foo foo foo foo foo
|
17
|
+
|
18
|
+
END
|
19
|
+
end
|
20
|
+
|
21
|
+
it "prints all matches correctly" do
|
22
|
+
strip_ansi(%x{rak foo}).should == t=<<END
|
23
|
+
foo.rb
|
24
|
+
3|foo foo foo Caprica foo foo foo
|
25
|
+
4|foo Capsicum foo foo foo foo foo
|
26
|
+
6|foo foo foo foo foo Pikon foo foo
|
27
|
+
8|foo Pikon foo foo foo foo foo foo
|
28
|
+
10|foo foo Six foo foo foo Six foo
|
29
|
+
11|foo foo foo foo Six foo foo foo
|
30
|
+
13|foo foo foo Gemenon foo foo foo
|
31
|
+
|
32
|
+
END
|
33
|
+
end
|
34
|
+
|
35
|
+
it "prints all matches from files in subdirectories" do
|
36
|
+
asterize_ansi(%x{rak Pikon}).should == t=<<END
|
37
|
+
*dir1/bar.rb*
|
38
|
+
2|bar bar bar bar *Pikon* bar
|
39
|
+
9|bar bar *Pikon* bar bar bar
|
40
|
+
|
41
|
+
*foo.rb*
|
42
|
+
6|foo foo foo foo foo *Pikon* foo foo
|
43
|
+
8|foo *Pikon* foo foo foo foo foo foo
|
44
|
+
|
45
|
+
END
|
46
|
+
end
|
47
|
+
|
48
|
+
it "prints multiple matches in a line" do
|
49
|
+
asterize_ansi(%x{rak Six}).should == t=<<END
|
50
|
+
*foo.rb*
|
51
|
+
10|foo foo *Six* foo foo foo *Six* foo
|
52
|
+
11|foo foo foo foo *Six* foo foo foo
|
53
|
+
|
54
|
+
END
|
55
|
+
end
|
56
|
+
|
57
|
+
it "skips VC dirs" do
|
58
|
+
%x{rak Aerelon}.should == ""
|
59
|
+
end
|
60
|
+
|
61
|
+
it "does not follow symlinks" do
|
62
|
+
%x{rak Sagitarron}.should == ""
|
63
|
+
end
|
64
|
+
|
65
|
+
it "changes defaults when redirected" do
|
66
|
+
ENV['RAK_TEST'] = "false"
|
67
|
+
asterize_ansi(%x{rak Six | cat}).should == t=<<END
|
68
|
+
foo.rb 10|foo foo Six foo foo foo Six foo
|
69
|
+
foo.rb 11|foo foo foo foo Six foo foo foo
|
70
|
+
END
|
71
|
+
ENV['RAK_TEST'] = "true"
|
72
|
+
end
|
73
|
+
|
74
|
+
it "searches shebangs for valid inputs" do
|
75
|
+
asterize_ansi(%x{rak Aquaria}).should == t=<<END
|
76
|
+
*shebang*
|
77
|
+
3|goo goo goo *Aquaria* goo goo
|
78
|
+
|
79
|
+
END
|
80
|
+
end
|
81
|
+
|
82
|
+
it "recognizes Makefiles and Rakefiles" do
|
83
|
+
asterize_ansi(%x{rak Canceron}).should == t=<<END
|
84
|
+
*Rakefile*
|
85
|
+
1|rakefile rakefile *Canceron* rakefile
|
86
|
+
|
87
|
+
END
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
describe "Rak", "with FILE or STDIN inputs" do
|
92
|
+
before(:all) do
|
93
|
+
ENV['RAK_TEST'] = "true"
|
94
|
+
end
|
95
|
+
after(:all) do
|
96
|
+
ENV['RAK_TEST'] = "false"
|
97
|
+
end
|
98
|
+
it "should only search in given files or directories" do
|
99
|
+
asterize_ansi(%x{rak Pikon foo.rb}).should == t=<<END
|
100
|
+
6|foo foo foo foo foo *Pikon* foo foo
|
101
|
+
8|foo *Pikon* foo foo foo foo foo foo
|
102
|
+
END
|
103
|
+
strip_ansi(%x{rak Pikon dir1/}).should == t=<<END
|
104
|
+
dir1/bar.rb
|
105
|
+
2|bar bar bar bar Pikon bar
|
106
|
+
9|bar bar Pikon bar bar bar
|
107
|
+
|
108
|
+
END
|
109
|
+
end
|
110
|
+
|
111
|
+
it "should search in STDIN by default if no files are specified" do
|
112
|
+
asterize_ansi(%x{cat _darcs/baz.rb | rak Aere}).should == t=<<END
|
113
|
+
2|baz baz baz *Aere*lon baz baz baz
|
114
|
+
END
|
115
|
+
end
|
116
|
+
|
117
|
+
it "only searches STDIN when piped to" do
|
118
|
+
asterize_ansi(%x{echo asdfCapasdf | rak Cap}).should == t=<<END
|
119
|
+
1|asdf*Cap*asdf
|
120
|
+
END
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
describe "Rak", "options" do
|
125
|
+
before(:all) do
|
126
|
+
ENV['RAK_TEST'] = "true"
|
127
|
+
end
|
128
|
+
after(:all) do
|
129
|
+
ENV['RAK_TEST'] = "false"
|
130
|
+
end
|
131
|
+
it "prints only files with --files" do
|
132
|
+
t=<<END
|
133
|
+
Rakefile
|
134
|
+
quux.py
|
135
|
+
dir1/bar.rb
|
136
|
+
foo.rb
|
137
|
+
shebang
|
138
|
+
END
|
139
|
+
sort_lines(%x{rak -f}).should == sort_lines(t)
|
140
|
+
end
|
141
|
+
|
142
|
+
it "prints a maximum number of matches if --max-count=x is specified" do
|
143
|
+
strip_ansi(%x{rak Cap.ic -m 1}).should == t=<<END
|
144
|
+
foo.rb
|
145
|
+
3|foo foo foo Caprica foo foo foo
|
146
|
+
|
147
|
+
END
|
148
|
+
end
|
149
|
+
|
150
|
+
it "prints the evaluated output for --output" do
|
151
|
+
strip_ansi(%x{rak Cap --output='$&'}).should == t=<<END
|
152
|
+
Cap
|
153
|
+
Cap
|
154
|
+
END
|
155
|
+
end
|
156
|
+
|
157
|
+
|
158
|
+
it "-c prints only the number of matches found per file" do
|
159
|
+
t=<<END
|
160
|
+
quux.py:0
|
161
|
+
dir1/bar.rb:2
|
162
|
+
foo.rb:2
|
163
|
+
shebang:0
|
164
|
+
Rakefile:0
|
165
|
+
END
|
166
|
+
sort_lines(strip_ansi(%x{rak Pik -c})).should == sort_lines(t)
|
167
|
+
end
|
168
|
+
|
169
|
+
it "-h suppresses filename and line number printing" do
|
170
|
+
asterize_ansi(%x{rak Pik -h}).should == t=<<END
|
171
|
+
bar bar bar bar *Pik*on bar
|
172
|
+
bar bar *Pik*on bar bar bar
|
173
|
+
foo foo foo foo foo *Pik*on foo foo
|
174
|
+
foo *Pik*on foo foo foo foo foo foo
|
175
|
+
END
|
176
|
+
end
|
177
|
+
|
178
|
+
it "ignores case with -i" do
|
179
|
+
strip_ansi(%x{rak six -i}).should == t=<<END
|
180
|
+
foo.rb
|
181
|
+
10|foo foo Six foo foo foo Six foo
|
182
|
+
11|foo foo foo foo Six foo foo foo
|
183
|
+
|
184
|
+
END
|
185
|
+
end
|
186
|
+
|
187
|
+
it "inverts the match with -v" do
|
188
|
+
t1=<<END
|
189
|
+
quux.py
|
190
|
+
1|quux quux quux quux Virgon quux quux
|
191
|
+
END
|
192
|
+
t12=<<END
|
193
|
+
dir1/bar.rb
|
194
|
+
1|
|
195
|
+
2|bar bar bar bar Pikon bar
|
196
|
+
3|
|
197
|
+
4|
|
198
|
+
5|
|
199
|
+
6|
|
200
|
+
7|
|
201
|
+
8|
|
202
|
+
9|bar bar Pikon bar bar bar
|
203
|
+
END
|
204
|
+
t2=<<END
|
205
|
+
foo.rb
|
206
|
+
1|
|
207
|
+
2|
|
208
|
+
5|
|
209
|
+
7|
|
210
|
+
9|
|
211
|
+
12|
|
212
|
+
END
|
213
|
+
t3=<<END
|
214
|
+
shebang
|
215
|
+
1|#!/usr/bin/env ruby
|
216
|
+
2|
|
217
|
+
3|goo goo goo Aquaria goo goo
|
218
|
+
END
|
219
|
+
t4=<<END
|
220
|
+
Rakefile
|
221
|
+
1|rakefile rakefile Canceron rakefile
|
222
|
+
END
|
223
|
+
r = strip_ansi(%x{rak foo -v})
|
224
|
+
r.include?(t1).should be_true
|
225
|
+
r.include?(t12).should be_true
|
226
|
+
r.include?(t2).should be_true
|
227
|
+
r.include?(t3).should be_true
|
228
|
+
r.include?(t4).should be_true
|
229
|
+
r.split("\n").length.should == 26
|
230
|
+
end
|
231
|
+
|
232
|
+
it "doesn't descend into subdirs with -n" do
|
233
|
+
strip_ansi(%x{rak Pikon -n}).should == t=<<END
|
234
|
+
foo.rb
|
235
|
+
6|foo foo foo foo foo Pikon foo foo
|
236
|
+
8|foo Pikon foo foo foo foo foo foo
|
237
|
+
|
238
|
+
END
|
239
|
+
end
|
240
|
+
|
241
|
+
it "quotes meta-characters with -Q" do
|
242
|
+
strip_ansi(%x{rak Cap. -Q}).should == ""
|
243
|
+
end
|
244
|
+
|
245
|
+
it "prints only the matching portion with -o" do
|
246
|
+
strip_ansi(%x{rak Cap -o}).should == t=<<END
|
247
|
+
Cap
|
248
|
+
Cap
|
249
|
+
END
|
250
|
+
end
|
251
|
+
|
252
|
+
it "matches whole words only with -w" do
|
253
|
+
strip_ansi(%x{rak Cap -w}).should == ""
|
254
|
+
end
|
255
|
+
|
256
|
+
it "prints the file on each line with --nogroup" do
|
257
|
+
asterize_ansi(%x{rak Cap --nogroup}).should == t=<<END
|
258
|
+
*foo.rb* 3|foo foo foo *Cap*rica foo foo foo
|
259
|
+
*foo.rb* 4|foo *Cap*sicum foo foo foo foo foo
|
260
|
+
END
|
261
|
+
end
|
262
|
+
|
263
|
+
it "-l means only print filenames with matches" do
|
264
|
+
asterize_ansi(%x{rak Caprica -l}).should == t=<<END
|
265
|
+
foo.rb
|
266
|
+
END
|
267
|
+
end
|
268
|
+
|
269
|
+
it "-L means only print filenames without matches" do
|
270
|
+
t=<<END
|
271
|
+
quux.py
|
272
|
+
dir1/bar.rb
|
273
|
+
shebang
|
274
|
+
Rakefile
|
275
|
+
END
|
276
|
+
sort_lines(asterize_ansi(%x{rak Caprica -L})).should == sort_lines(t)
|
277
|
+
end
|
278
|
+
|
279
|
+
it "--passthru means print all lines whether matching or not" do
|
280
|
+
t1=<<END
|
281
|
+
quux quux quux quux Virgon quux quux
|
282
|
+
END
|
283
|
+
|
284
|
+
t2=<<END
|
285
|
+
*foo.rb*
|
286
|
+
3|foo foo foo *Caprica* foo foo foo
|
287
|
+
foo Capsicum foo foo foo foo foo
|
288
|
+
|
289
|
+
foo foo foo foo foo Pikon foo foo
|
290
|
+
|
291
|
+
foo Pikon foo foo foo foo foo foo
|
292
|
+
|
293
|
+
foo foo Six foo foo foo Six foo
|
294
|
+
foo foo foo foo Six foo foo foo
|
295
|
+
|
296
|
+
foo foo foo Gemenon foo foo foo
|
297
|
+
END
|
298
|
+
t3=<<END
|
299
|
+
#!/usr/bin/env ruby
|
300
|
+
|
301
|
+
goo goo goo Aquaria goo goo
|
302
|
+
END
|
303
|
+
r = asterize_ansi(%x{rak Caprica --passthru -n})
|
304
|
+
r.include?(t1).should be_true
|
305
|
+
r.include?(t2).should be_true
|
306
|
+
r.include?(t3).should be_true
|
307
|
+
r.split("\n").length.should < (t1+t2+t3).split("\n").length+5
|
308
|
+
end
|
309
|
+
|
310
|
+
it "--nocolour means do not colourize the output" do
|
311
|
+
asterize_ansi(%x{rak Cap --nocolour}).should == t=<<END
|
312
|
+
foo.rb
|
313
|
+
3|foo foo foo Caprica foo foo foo
|
314
|
+
4|foo Capsicum foo foo foo foo foo
|
315
|
+
|
316
|
+
END
|
317
|
+
end
|
318
|
+
|
319
|
+
it "-a means to search every file" do
|
320
|
+
asterize_ansi(%x{rak Libris -a}).should == t=<<END
|
321
|
+
*qux*
|
322
|
+
1|qux qux qux *Libris* qux qux qux
|
323
|
+
|
324
|
+
END
|
325
|
+
|
326
|
+
end
|
327
|
+
|
328
|
+
it "--ruby means only ruby files" do
|
329
|
+
asterize_ansi(%x{rak Virgon --ruby}).should == ""
|
330
|
+
end
|
331
|
+
|
332
|
+
it "--python means only python files" do
|
333
|
+
asterize_ansi(%x{rak Cap --python}).should == ""
|
334
|
+
end
|
335
|
+
|
336
|
+
it "--noruby means exclude ruby files" do
|
337
|
+
asterize_ansi(%x{rak Cap --noruby}).should == ""
|
338
|
+
end
|
339
|
+
|
340
|
+
it "--type=ruby means only ruby files" do
|
341
|
+
asterize_ansi(%x{rak Virgon --type=ruby}).should == ""
|
342
|
+
end
|
343
|
+
|
344
|
+
it "--type=python means only python files" do
|
345
|
+
asterize_ansi(%x{rak Cap --type=python}).should == ""
|
346
|
+
end
|
347
|
+
|
348
|
+
it "--type=noruby means exclude ruby files" do
|
349
|
+
asterize_ansi(%x{rak Cap --type=noruby}).should == ""
|
350
|
+
end
|
351
|
+
|
352
|
+
it "--sort-files" do
|
353
|
+
%x{rak -f --sort-files}.should == t=<<END
|
354
|
+
dir1/bar.rb
|
355
|
+
foo.rb
|
356
|
+
quux.py
|
357
|
+
Rakefile
|
358
|
+
shebang
|
359
|
+
END
|
360
|
+
end
|
361
|
+
|
362
|
+
it "--follow means follow symlinks" do
|
363
|
+
strip_ansi(%x{rak Sagitarron --follow}).should == t=<<END
|
364
|
+
corge.rb
|
365
|
+
1|corge corge corge Sagitarron corge
|
366
|
+
|
367
|
+
ln_dir/corge.rb
|
368
|
+
1|corge corge corge Sagitarron corge
|
369
|
+
|
370
|
+
END
|
371
|
+
end
|
372
|
+
|
373
|
+
it "-A NUM means show NUM lines after" do
|
374
|
+
strip_ansi(%x{rak Caps -A 2}).should == t=<<END
|
375
|
+
foo.rb
|
376
|
+
4|foo Capsicum foo foo foo foo foo
|
377
|
+
5|
|
378
|
+
6|foo foo foo foo foo Pikon foo foo
|
379
|
+
|
380
|
+
END
|
381
|
+
end
|
382
|
+
|
383
|
+
it "-A should work when there are matches close together" do
|
384
|
+
strip_ansi(%x{rak foo -A 2}).should == t=<<END
|
385
|
+
foo.rb
|
386
|
+
3|foo foo foo Caprica foo foo foo
|
387
|
+
4|foo Capsicum foo foo foo foo foo
|
388
|
+
5|
|
389
|
+
6|foo foo foo foo foo Pikon foo foo
|
390
|
+
7|
|
391
|
+
8|foo Pikon foo foo foo foo foo foo
|
392
|
+
9|
|
393
|
+
10|foo foo Six foo foo foo Six foo
|
394
|
+
11|foo foo foo foo Six foo foo foo
|
395
|
+
12|
|
396
|
+
13|foo foo foo Gemenon foo foo foo
|
397
|
+
|
398
|
+
END
|
399
|
+
end
|
400
|
+
|
401
|
+
it "-B NUM means show NUM lines before" do
|
402
|
+
strip_ansi(%x{rak Caps -B 2}).should == t=<<END
|
403
|
+
foo.rb
|
404
|
+
2|
|
405
|
+
3|foo foo foo Caprica foo foo foo
|
406
|
+
4|foo Capsicum foo foo foo foo foo
|
407
|
+
|
408
|
+
END
|
409
|
+
end
|
410
|
+
|
411
|
+
it "-C means show 2 lines before and after" do
|
412
|
+
strip_ansi(%x{rak Caps -C}).should == t=<<END
|
413
|
+
foo.rb
|
414
|
+
2|
|
415
|
+
3|foo foo foo Caprica foo foo foo
|
416
|
+
4|foo Capsicum foo foo foo foo foo
|
417
|
+
5|
|
418
|
+
6|foo foo foo foo foo Pikon foo foo
|
419
|
+
|
420
|
+
END
|
421
|
+
end
|
422
|
+
|
423
|
+
it "-C 1 means show 1 lines before and after" do
|
424
|
+
strip_ansi(%x{rak Caps -C 1}).should == t=<<END
|
425
|
+
foo.rb
|
426
|
+
3|foo foo foo Caprica foo foo foo
|
427
|
+
4|foo Capsicum foo foo foo foo foo
|
428
|
+
5|
|
429
|
+
|
430
|
+
END
|
431
|
+
end
|
432
|
+
|
433
|
+
it "-C works correctly for nearby results" do
|
434
|
+
strip_ansi(%x{rak Pik -g foo -C}).should == t=<<END
|
435
|
+
foo.rb
|
436
|
+
4|foo Capsicum foo foo foo foo foo
|
437
|
+
5|
|
438
|
+
6|foo foo foo foo foo Pikon foo foo
|
439
|
+
7|
|
440
|
+
8|foo Pikon foo foo foo foo foo foo
|
441
|
+
9|
|
442
|
+
10|foo foo Six foo foo foo Six foo
|
443
|
+
|
444
|
+
END
|
445
|
+
end
|
446
|
+
it "-g REGEX only searches in files matching REGEX" do
|
447
|
+
asterize_ansi(%x{rak Pikon -g f.o}).should == t=<<END
|
448
|
+
*foo.rb*
|
449
|
+
6|foo foo foo foo foo *Pikon* foo foo
|
450
|
+
8|foo *Pikon* foo foo foo foo foo foo
|
451
|
+
|
452
|
+
END
|
453
|
+
end
|
454
|
+
|
455
|
+
it "-x means match only whole lines" do
|
456
|
+
asterize_ansi(%x{rak Cap -x}).should == ""
|
457
|
+
asterize_ansi(%x{rak "(foo )+Cap\\w+( foo)+" -x}).should == t=<<END
|
458
|
+
*foo.rb*
|
459
|
+
3|*foo foo foo Caprica foo foo foo*
|
460
|
+
4|*foo Capsicum foo foo foo foo foo*
|
461
|
+
|
462
|
+
END
|
463
|
+
end
|
464
|
+
end
|
465
|
+
|
466
|
+
describe "Rak", "with combinations of options" do
|
467
|
+
before(:all) do
|
468
|
+
ENV['RAK_TEST'] = "true"
|
469
|
+
end
|
470
|
+
after(:all) do
|
471
|
+
ENV['RAK_TEST'] = "false"
|
472
|
+
end
|
473
|
+
|
474
|
+
it "should process -c -v " do
|
475
|
+
t1=<<END
|
476
|
+
quux.py:1
|
477
|
+
dir1/bar.rb:7
|
478
|
+
foo.rb:11
|
479
|
+
shebang:3
|
480
|
+
Rakefile:1
|
481
|
+
END
|
482
|
+
sort_lines(strip_ansi(%x{rak Pikon -c -v})).should == sort_lines(t1)
|
483
|
+
end
|
484
|
+
|
485
|
+
it "-h and redirection" do
|
486
|
+
ENV['RAK_TEST'] = "false"
|
487
|
+
%x{rak Pik -h | cat}.should == t=<<END
|
488
|
+
bar bar bar bar Pikon bar
|
489
|
+
bar bar Pikon bar bar bar
|
490
|
+
foo foo foo foo foo Pikon foo foo
|
491
|
+
foo Pikon foo foo foo foo foo foo
|
492
|
+
END
|
493
|
+
ENV['RAK_TEST'] = "true"
|
494
|
+
end
|
495
|
+
end
|
496
|
+
|
497
|
+
|
498
|
+
|
499
|
+
|
500
|
+
|