formatr 1.10.0 → 1.10.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/formatr.rb +18 -15
  2. data/test/test_formatr.rb +205 -199
  3. metadata +2 -2
@@ -13,17 +13,17 @@
13
13
  # PURPOSE.
14
14
  #
15
15
  # = To Test this code:
16
- # Currently (1.10) the gem checking is broken since it tried to write out
17
- # files to places where only root has permissions. You should be able
18
- # to run the tests in the /test/ directory if you copy them somewhere else.
19
- # I'm working on a fix.
20
16
  #
21
- # Try test_format.rb with no arguments. If nothing is amiss you should
17
+ # Try ./test/test_formatr.rb with no arguments. If nothing is amiss you should
22
18
  # see OK (??/?? tests ?? asserts). This tests the format output
23
- # against perl output (which is in the test directory if you don't
24
- # have perl). If you would like to see the format output try
25
- # test_format.rb --keep which will place the test's output in the file
26
- # format_testfile{1-10}
19
+ # against perl output (which is in the test directory). You can test
20
+ # against your perl installation by removing a comment in the
21
+ # constructor of FormatTester to set @hasPerl. That's how the
22
+ # test files were generated. I removed the dynamic generation
23
+ # due to issues with testing the gem.
24
+ # If you would like to see the format output try
25
+ # ./test/test_formatr.rb -- --keep which will place the test's output in the file
26
+ # format-output*.txt
27
27
  #
28
28
  # = Usage
29
29
  # Class FormatR::Format in module FormatR provides perl like formats for ruby.
@@ -32,7 +32,7 @@
32
32
  # values.
33
33
  #
34
34
  # For example:
35
- # require "format.rb"
35
+ # require "formatr"
36
36
  # include FormatR
37
37
  #
38
38
  # top_ex = <<DOT
@@ -75,7 +75,7 @@
75
75
  # 5) On the way home 17.50
76
76
  #
77
77
  #
78
- # More examples are found in test_format.rb
78
+ # More examples are found in test_formatr.rb
79
79
  #
80
80
  # = Supported Format Fields
81
81
  #
@@ -120,7 +120,7 @@
120
120
  # @##.#E### with the value 123.4567E200 produces 1.2E+202 since
121
121
  # there is only one hash after the decimal point.
122
122
  #
123
- # * More examples of using the scientific formats can be found in test_format.rb
123
+ # * More examples of using the scientific formats can be found in test_formatr.rb
124
124
  #
125
125
  #
126
126
  # = Reading in output printed by formats, FormatR::FormatReader
@@ -206,7 +206,12 @@
206
206
  #
207
207
  #
208
208
  # = Changes:
209
- # ==1.10.0
209
+ # ==1.10.1
210
+ # * Got testing working with gem install -t
211
+ # * fixed some documentation bugs due to the name change format.rb to
212
+ # formatr.rb
213
+ #
214
+ ## ==1.10.0
210
215
  # * Moved from sourceforge to rubyforge and released as a gem.
211
216
  # * Changed filename from format.rb to formatr.rb.
212
217
  # * Checked with the most recent version of 1.9 and everything
@@ -380,8 +385,6 @@
380
385
  #
381
386
  #
382
387
  # =To Do/Think about:
383
- # * Fix gem check -t formatr so that it works without write access to the test
384
- # directory.
385
388
  #
386
389
  # * Have a format that chops lines that are too long to fit in the specified space
387
390
  #
@@ -112,21 +112,24 @@ $test_5.push("string")
112
112
 
113
113
  class FormatTester < Test::Unit::TestCase
114
114
  @@keep = false
115
+ @@file_number = 0
116
+
115
117
 
116
118
  def initialize (a)
117
119
  super(a)
118
- hasPerl = `/usr/bin/env perl -h`
119
- @hasPerl = ((hasPerl == "") ? false : true)
120
+ #hasPerl = `/usr/bin/env perl -h`
121
+ #@hasPerl = ((hasPerl == "") ? false : true)
122
+ # As a gem it's hard to get the path right, this is more robust
123
+ @hasPerl = false
120
124
  end
121
125
 
122
126
  def FormatTester.setKeep (keep)
123
127
  @@keep = keep
124
128
  end
125
129
 
126
- def getPerlToCompare (perl)
127
- program, arguments = perl.split(' ', 2)
130
+ def getPerlToCompare (program, arguments)
128
131
  if (@hasPerl)
129
- io = IO.popen(perl)
132
+ io = IO.popen("#{program} #{arguments}")
130
133
  else #use cached values
131
134
  io = File.open("./test/" + arguments)
132
135
  end
@@ -135,27 +138,35 @@ class FormatTester < Test::Unit::TestCase
135
138
  perl_output.collect! {|x| x.chomp()}
136
139
  end
137
140
 
138
- def compareOutput (infile, perl, tail)
139
- perl_output = getPerlToCompare(perl)
141
+
142
+
143
+ #
144
+ def compareOutput (file, perl, tail)
145
+ program, arguments = perl.split(' ', 2)
146
+ perl_output = getPerlToCompare(program, arguments)
140
147
  tail.each {|i| perl_output.push(i.chomp())} if (tail)
141
- File.open("#{infile}"){|file|
142
- lines = file.readlines
143
- lines.each_index {|i|
144
- line = lines[i].chomp!()
145
- if (!(line === (perl_output[i])))
146
- perl_name = "perl".ljust(infile.length)
147
- raise "testing error between \n" +
148
- "#{infile}>#{line}<\n#{perl_name}>#{perl_output[i]}<"
148
+ lines = file.readlines
149
+ lines.each_index do |i|
150
+ line = lines[i].chomp!()
151
+ if (!(line === (perl_output[i])))
152
+ perl_name = "perl".ljust(infile.length)
153
+ raise "testing error between \n" +
154
+ "#{infile}>#{line}<\n#{perl_name}>#{perl_output[i]}<"
155
+ end
156
+ end
157
+ if (lines.size != perl_output.size)
158
+ raise "testing error between formatR output #{lines.size()} and " +
159
+ "#{perl} #{perl_output.size()}, not the same size"
160
+ else
161
+ if (@@keep)
162
+ filename = "format-output-#{@@file_number}-#{arguments}.txt"
163
+ @@file_number+= 1
164
+ puts "keeping #{filename}"
165
+ File.open(filename, File::CREAT | File::WRONLY | File::TRUNC) do |file|
166
+ lines.each{ |i| file.puts(i)}
149
167
  end
150
- }
151
- if (lines.size != perl_output.size)
152
- raise "testing error between #{infile} #{lines.size()} and " +
153
- "#{perl} #{perl_output.size()}, not the same size"
154
- else
155
- puts "keeping #{infile}" if @@keep
156
- File.delete(infile) unless (@@keep)
157
168
  end
158
- }
169
+ end
159
170
  true
160
171
  end
161
172
 
@@ -168,14 +179,14 @@ class FormatTester < Test::Unit::TestCase
168
179
  fmt1 = Format.new($f)
169
180
  fmt1.setTop($top)
170
181
 
171
- File.open("format_testfile1", File::CREAT | File::WRONLY | File::TRUNC) { |file|
172
- fmt1.io = file
173
- 13.times do
174
- fmt1.printFormatWithBinding(binding)
175
- end
176
- }
177
-
178
- assert(compareOutput("format_testfile1", "./format_test.pl 1", nil))
182
+ file = StringIO.new
183
+ fmt1.io = file
184
+ 13.times do
185
+ fmt1.printFormatWithBinding(binding)
186
+ end
187
+
188
+ file.rewind
189
+ assert(compareOutput(file, "./format_test.pl 1", nil))
179
190
  end
180
191
 
181
192
 
@@ -187,50 +198,49 @@ class FormatTester < Test::Unit::TestCase
187
198
  uid = 124.135791357;
188
199
 
189
200
  fmt = Format.new($from_perl)
190
- File.open("format_testfile2", File::CREAT | File::WRONLY | File::TRUNC) { |file|
191
- gid = -13
192
- home = "/home/rubel/"
193
- fmt.io = file
194
- fmt.setTop($top)
195
- 20.times do
196
- fmt.printFormat(binding)
197
- end
198
- }
201
+ file = StringIO.new
202
+
203
+ gid = -13
204
+ home = "/home/rubel/"
205
+ fmt.io = file
206
+ fmt.setTop($top)
207
+ 20.times do
208
+ fmt.printFormat(binding)
209
+ end
210
+
199
211
  raise "line numbering is broken #{fmt.pageNumber()}" unless (3 == fmt.pageNumber())
200
- assert(compareOutput("format_testfile2", "./format_test.pl 2", nil))
212
+ assert(compareOutput(file.rewind, "./format_test.pl 2", nil))
201
213
  end
202
214
 
203
215
 
204
216
  def test_recursive_exceptions
205
217
  fmt = Format.new($from_perl)
206
- assert_raises(FormatException, "Should have thrown an exception") {
207
- #assert_exception(FormatException, "Should have thrown an exception") {
218
+ assert_raises(FormatException, "Should have thrown an exception") do
208
219
  fmt.setTop(fmt)
209
- }
220
+ end
210
221
  end
211
222
 
212
223
 
213
224
  def test_bad_format_exception
214
- assert_raises(FormatException, "Malformed format slipped through") {
225
+ assert_raises(FormatException, "Malformed format slipped through") do
215
226
  badFormat = Format.new($bad_format)
216
- }
227
+ end
217
228
  end
218
229
 
219
- def helper_test_three (body_fmt, file_name)
220
- File.open(file_name, File::CREAT | File::WRONLY | File::TRUNC) { |file|
221
- body_fmt.io = file
222
- month = "Sep"
223
- day = 18
224
- year = 2001
225
- num = 1
226
- body_fmt.setPageLength(11)
227
- ["Market", "Home", "Eating Roast Beef", "Having None", "On the way home"].each {|location|
228
- toe_size = (num * 3.5)
229
- body_fmt.printFormat(binding)
230
- num += 1
231
- }
232
- assert(1 == body_fmt.pageNumber())
233
- }
230
+ def helper_test_three (body_fmt, file)
231
+ body_fmt.io = file
232
+ month = "Sep"
233
+ day = 18
234
+ year = 2001
235
+ num = 1
236
+ body_fmt.setPageLength(11)
237
+ ["Market", "Home", "Eating Roast Beef",
238
+ "Having None", "On the way home"].each do |location|
239
+ toe_size = (num * 3.5)
240
+ body_fmt.printFormat(binding)
241
+ num += 1
242
+ end
243
+ assert(1 == body_fmt.pageNumber())
234
244
  end
235
245
 
236
246
  #test setting top and middle formats at once and page numbers
@@ -238,15 +248,15 @@ class FormatTester < Test::Unit::TestCase
238
248
  0.upto(1) do |x|
239
249
  body_fmt = Format.new($top_ex, $ex)
240
250
  body_fmt.useHash( x == 0 )
241
- helper_test_three(body_fmt, "format_testfile3-#{x}")
242
- assert(compareOutput("format_testfile3-#{x}",
243
- "./format_test.pl 3", nil))
251
+ file = StringIO.new
252
+ helper_test_three(body_fmt, file)
253
+ file.rewind
254
+ assert(compareOutput(file, "./format_test.pl 3", nil))
244
255
  end
245
256
  end
246
257
 
247
258
 
248
- def helper_test_four (body_fmt, file_name)
249
- File.open(file_name, File::CREAT | File::WRONLY | File::TRUNC) { |file|
259
+ def helper_test_four (body_fmt, file)
250
260
  body_fmt.io = file
251
261
  month = "Sep"
252
262
  day = 18
@@ -254,39 +264,38 @@ class FormatTester < Test::Unit::TestCase
254
264
  10.times do
255
265
  num = 1
256
266
  ["Market", "Home", "Eating Roast Beef",
257
- "Having None", "On the way home"].each {|location|
267
+ "Having None", "On the way home"].each do |location|
258
268
  toe_size = (num * 3.5)
259
269
  body_fmt.printFormat(binding)
260
270
  num += 1
261
- }
271
+ end
262
272
  end
263
- }
264
- assert(compareOutput(file_name,
265
- "./format_test.pl 4", nil))
273
+ file.rewind
274
+ assert(compareOutput(file, "./format_test.pl 4", nil))
266
275
  end
267
276
 
268
- def helper_hash_test_four (body_fmt, file_name)
277
+ def helper_hash_test_four (body_fmt, file)
269
278
  h = Hash.new
270
279
  h["month"] = "Sep"
271
280
  h['day'] = 18
272
281
  h['year'] = 2001
273
- File.open(file_name, File::CREAT | File::WRONLY | File::TRUNC) { |file|
282
+ file = StringIO.new
274
283
  body_fmt.io = file
275
284
  10.times do
276
285
  num = 1
277
286
  h["num"] = num
278
287
  ["Market", "Home", "Eating Roast Beef",
279
- "Having None", "On the way home"].each {|location|
288
+ "Having None", "On the way home"].each do |location|
280
289
  h["location"] = location
281
290
  h["toe_size"] = (num * 3.5)
282
291
  body_fmt.printFormatWithHash(h)
283
292
  num += 1
284
293
  h["num"] = num
285
- }
294
+ end
286
295
  end
287
- }
288
- assert(compareOutput(file_name,
289
- "./format_test.pl 4", nil))
296
+
297
+ file.rewind
298
+ assert(compareOutput(file, "./format_test.pl 4", nil))
290
299
  end
291
300
 
292
301
 
@@ -300,10 +309,11 @@ class FormatTester < Test::Unit::TestCase
300
309
  body_fmt.setTop($top_ex)
301
310
  body_fmt.setBottom(bottom_fmt)
302
311
  body_fmt.setPageLength(10)
312
+ file = StringIO.new
303
313
  if (x <2)
304
- helper_test_four(body_fmt, "format_testfile4-#{x}")
314
+ helper_test_four(body_fmt, file)
305
315
  else
306
- helper_hash_test_four(body_fmt, "format_testfile4-#{x}")
316
+ helper_hash_test_four(body_fmt, file)
307
317
  end
308
318
  end
309
319
  end
@@ -312,9 +322,7 @@ class FormatTester < Test::Unit::TestCase
312
322
  #test the finishPage methods and setting all three formats at once,
313
323
  #top, bottom, and middle.
314
324
 
315
- def helper_test_five (body_fmt, file_name)
316
- File.open(file_name,
317
- File::CREAT | File::WRONLY | File::TRUNC) { |file|
325
+ def helper_test_five (body_fmt, file)
318
326
  body_fmt.io = file
319
327
  month = "Sep"
320
328
  day = 19
@@ -323,15 +331,15 @@ class FormatTester < Test::Unit::TestCase
323
331
  10.times do
324
332
  count += 1
325
333
  num = 1
326
- ["Market", "Home", "Eating Roast Beef", "Having None", "On the way home"].each {|location|
334
+ ["Market", "Home", "Eating Roast Beef",
335
+ "Having None", "On the way home"].each do |location|
327
336
  toe_size = 1
328
337
  body_fmt.printFormat(binding)
329
338
  num += 1
330
- }
339
+ end
331
340
  body_fmt.finishPageWithFF(binding) unless (count == 10)
332
341
  end
333
342
  body_fmt.finishPageWithoutFF(binding)
334
- }
335
343
  end
336
344
 
337
345
  def test_five
@@ -339,23 +347,22 @@ class FormatTester < Test::Unit::TestCase
339
347
  body_fmt = Format.new($top_ex, $ex, $bot_ex)
340
348
  body_fmt.useHash(x == 0)
341
349
  body_fmt.setPageLength(20)
342
- helper_test_five(body_fmt, "format_testfile5-#{x}")
343
- assert(compareOutput("format_testfile5-#{x}",
350
+ file = StringIO.new
351
+ helper_test_five(body_fmt, file)
352
+ file.rewind
353
+ assert(compareOutput(file,
344
354
  "./format_test.pl 5", nil))
345
355
  end
346
356
  end
347
357
 
348
358
 
349
- def helper_test_six (body_fmt, file_name)
350
- File.open(file_name,
351
- File::CREAT | File::WRONLY | File::TRUNC) { |file|
359
+ def helper_test_six (body_fmt, file)
352
360
  body_fmt.io = file
353
361
  long = "01234567890abcde fg h i jklmn12345678901234567890123456.789"
354
362
  num = 123.456
355
363
  short = '123.456'
356
364
  body_fmt.printFormat(binding)
357
365
  raise "page numbering not working " unless (1 == body_fmt.pageNumber())
358
- }
359
366
  end
360
367
 
361
368
  def test_six
@@ -364,38 +371,37 @@ class FormatTester < Test::Unit::TestCase
364
371
  hat_format = Format.new($hat_ex)
365
372
  hat_format.setTop(hat_top)
366
373
  hat_format.useHash(x == 1)
367
- helper_test_six(hat_format, "format_testfile6-#{x}")
368
- assert(compareOutput("format_testfile6-#{x}",
369
- "./format_test.pl 6", nil))
374
+ file = StringIO.new
375
+ helper_test_six(hat_format, file)
376
+
377
+ file.rewind
378
+ assert(compareOutput(file, "./format_test.pl 6", nil))
370
379
  end
371
380
  end
372
381
 
373
382
 
374
- def helper_test_seven (body_fmt, file_name)
375
- File.open(file_name,
376
- File::CREAT | File::WRONLY | File::TRUNC) { |file|
383
+ def helper_test_seven (body_fmt, file)
377
384
  body_fmt.io = file
378
385
  blank = ""
379
386
  non_blank = " "
380
387
  string = "abcdefghijklmn"
381
388
  body_fmt.printFormat(binding)
382
- }
389
+
383
390
  end
384
391
 
385
392
  def test_seven
386
- puts "test 7"
387
393
  0.upto(1) do |x|
394
+ file = StringIO.new
388
395
  tilde_format = Format.new($test_5)
389
- helper_test_seven(tilde_format, "format_testfile7-#{x}")
390
- assert(compareOutput("format_testfile7-#{x}",
396
+ helper_test_seven(tilde_format, file)
397
+
398
+ file.rewind
399
+ assert(compareOutput(file,
391
400
  "./format_test.pl 7", nil))
392
401
  end
393
- puts "test 7 end"
394
402
  end
395
403
 
396
- def helper_test_eight (body_fmt, file_name)
397
- File.open(file_name,
398
- File::CREAT | File::WRONLY | File::TRUNC) { |file|
404
+ def helper_test_eight (body_fmt, file)
399
405
  body_fmt.io = file
400
406
  blank = ""
401
407
  non_blank = " "
@@ -403,50 +409,50 @@ class FormatTester < Test::Unit::TestCase
403
409
 
404
410
  body_fmt.printFormat(binding)
405
411
  body_fmt.finishPageWithoutFF(binding)
406
- }
407
412
  end
408
413
 
409
414
  def test_eight
410
415
  #Problems when formats don't fit on a single page!
411
416
  0.upto(1) do |x|
417
+ file = StringIO.new
412
418
  tilde_format = Format.new($test_5)
413
419
  tilde_format.setPageLength(10)
414
420
  tilde_format.useHash(x == 0)
415
- helper_test_eight(tilde_format, "format_testfile8-#{x}")
416
- assert(compareOutput("format_testfile8-#{x}",
421
+ helper_test_eight(tilde_format, file)
422
+
423
+ file.rewind
424
+ assert(compareOutput(file,
417
425
  "./format_test.pl 8", nil))
418
426
  end
419
427
  end
420
428
 
421
429
 
422
- def helper_test_empty_top_bottom (body_fmt, file_name)
423
- File.open(file_name,
424
- File::CREAT | File::WRONLY | File::TRUNC) { |file|
430
+ def helper_test_empty_top_bottom (body_fmt, file)
425
431
  body_fmt.io = file
426
432
  blank = ""
427
433
  non_blank = " "
428
434
  string = ("a"*100) + "b"
429
435
  body_fmt.printFormat(binding)
430
436
  body_fmt.finishPageWithoutFF(binding)
431
- }
432
437
  end
433
438
 
434
439
  #can we pass in an emptry string as a top and nil as a bottom?
435
440
  def test_empty_top_bottom
436
441
  0.upto(1) do |x|
442
+ file = StringIO.new
437
443
  #Problems when formats don't fit on a single page!
438
444
  tilde_format = Format.new("",$test_5, nil)
439
445
  tilde_format.useHash(x == 0)
440
446
  tilde_format.setPageLength(10)
441
- helper_test_empty_top_bottom(tilde_format, "format_testfile9-#{x}")
442
- assert(compareOutput("format_testfile9-#{x}",
447
+ helper_test_empty_top_bottom(tilde_format, file)
448
+
449
+ file.rewind
450
+ assert(compareOutput(file,
443
451
  "./format_test.pl 8", nil))
444
452
  end
445
453
  end
446
454
 
447
- def helper_test_scientific (body_fmt, file_name)
448
- File.open(file_name,
449
- File::CREAT | File::WRONLY | File::TRUNC) { |file|
455
+ def helper_test_scientific (body_fmt, file)
450
456
  body_fmt.io = file
451
457
  int = 12
452
458
  exp = 1.234e-14
@@ -454,7 +460,6 @@ class FormatTester < Test::Unit::TestCase
454
460
  big = 123.4567E200
455
461
  little = 12.34e-20
456
462
  body_fmt.printFormat(binding)
457
- }
458
463
  end
459
464
 
460
465
  def test_scientific
@@ -480,34 +485,34 @@ class FormatTester < Test::Unit::TestCase
480
485
  f.push("7 int @.G## @.E##")
481
486
  f.push("int, int")
482
487
  0.upto(1) do |x|
488
+ file = StringIO.new
483
489
  exp_format = Format.new("", f, nil)
484
490
  exp_format.useHash(x == 0)
485
- helper_test_scientific(exp_format, "format_testfile10-#{x}")
486
- assert(compareOutput("format_testfile10-#{x}",
491
+ helper_test_scientific(exp_format, file)
492
+
493
+ file.rewind
494
+ assert(compareOutput(file,
487
495
  "./format_test.pl 10", nil))
488
496
  end
489
497
  end
490
498
 
491
- def helper_test_eleven (body_fmt, file_name)
492
- File.open(file_name,
493
- File::CREAT | File::WRONLY | File::TRUNC) { |file|
494
- body_fmt.io = file
495
- one = 1
496
- body_fmt.printFormat(binding)
497
- }
498
- assert(compareOutput(file_name,
499
+ def helper_test_eleven (body_fmt, file)
500
+ body_fmt.io = file
501
+ one = 1
502
+ body_fmt.printFormat(binding)
503
+ file.rewind
504
+ assert(compareOutput(file,
499
505
  "./format_test.pl 11", nil))
500
506
  end
501
507
 
502
- def helper_hash_test_eleven (body_fmt, file_name)
508
+ def helper_hash_test_eleven (body_fmt, file)
503
509
  h = Hash.new
504
510
  h['one'] = 1
505
- File.open(file_name,
506
- File::CREAT | File::WRONLY | File::TRUNC) { |file|
507
- body_fmt.io = file
508
- body_fmt.printFormatWithHash( h )
509
- }
510
- assert(compareOutput(file_name,
511
+ body_fmt.io = file
512
+ body_fmt.printFormatWithHash( h )
513
+
514
+ file.rewind
515
+ assert(compareOutput(file,
511
516
  "./format_test.pl 11", nil))
512
517
  end
513
518
 
@@ -518,26 +523,27 @@ class FormatTester < Test::Unit::TestCase
518
523
  f.push( '@@@ @@@' )
519
524
  f.push( 'one,one,one,one,one,one')
520
525
  0.upto(1) do |x|
526
+ file = StringIO.new
521
527
  format = Format.new(f)
522
- helper_test_eleven(format, "format_testfile11-#{x}")
528
+ helper_test_eleven(format, file)
523
529
 
524
530
  end
531
+ file = StringIO.new
525
532
  format = Format.new(f)
526
- helper_hash_test_eleven(format, "format_testfile11-2")
533
+ helper_hash_test_eleven(format, file)
527
534
 
528
535
  end
529
536
 
530
- def helper_test_twelve (body_fmt, file_name)
537
+ def helper_test_twelve (body_fmt, file)
531
538
  var_one, var_two, var_three, var_four = 1, 2, 3, 4.3
532
- File.open(file_name,
533
- File::CREAT | File::WRONLY | File::TRUNC) { |file|
534
539
  body_fmt.io = file
535
540
  body_fmt.printFormat(binding)
536
- }
541
+
542
+ file.rewind
537
543
  output = []
538
- File.open( file_name ){ |file|
539
- output = file.readlines()
540
- }
544
+
545
+ output = file.readlines()
546
+
541
547
 
542
548
  reader = FormatReader.new(body_fmt)
543
549
  res = reader.readFormat(output)
@@ -548,13 +554,14 @@ class FormatTester < Test::Unit::TestCase
548
554
  assert(res['var_three'] == var_three.to_s)
549
555
  assert(res['var_four'] == var_four)
550
556
  # we need to compare last since compare may delete the file when its done
551
- assert(compareOutput(file_name,
557
+
558
+ file.rewind
559
+ assert(compareOutput(file,
552
560
  "./format_test.pl 12", nil))
553
561
  end
554
562
 
555
563
  # try out reading in variables
556
564
  def test_twelve
557
- puts "test 12"
558
565
  f = []
559
566
  f.push( '<?xml version="1.0"?>' )
560
567
  f.push( '@@@ Paul @@@ }Rubel @< @|| @#.#' )
@@ -568,11 +575,12 @@ class FormatTester < Test::Unit::TestCase
568
575
  pictures = format.getPictureLines
569
576
  assert(pictures.size == 3)
570
577
 
571
- helper_test_twelve(format, "format_testfile12-#{x}")
578
+ file = StringIO.new
579
+ helper_test_twelve(format, file)
572
580
  end
573
581
  end
574
582
 
575
- def helper_test_thirteen (body_fmt, file_name)
583
+ def helper_test_thirteen (body_fmt, file)
576
584
  one = "FIVE SIX"
577
585
  val1 = one.clone
578
586
  two = "ONE TWO"
@@ -580,17 +588,16 @@ class FormatTester < Test::Unit::TestCase
580
588
  val3 = "Yay"
581
589
  var_exp = 3.44e10
582
590
 
583
- File.open(file_name,
584
- File::CREAT | File::WRONLY | File::TRUNC) { |file|
585
- body_fmt.io = file
586
- body_fmt.printFormat(binding)
587
- }
591
+ body_fmt.io = file
592
+ body_fmt.printFormat(binding)
593
+
588
594
 
589
595
  #save the output for later
596
+ file.rewind
590
597
  output = []
591
- File.open( file_name ){ |file|
592
- output = file.readlines()
593
- }
598
+
599
+ output = file.readlines()
600
+
594
601
 
595
602
  reader = FormatReader.new(body_fmt)
596
603
  res = reader.readFormat(output)
@@ -599,13 +606,10 @@ class FormatTester < Test::Unit::TestCase
599
606
  assert(res['val2'] == two)
600
607
  assert(res['val3'] == val3)
601
608
  assert(res['var_exp'] == var_exp)
602
- puts "tested 13 in #{file_name}"
603
- File.delete(file_name) unless (@@keep)
604
609
  end
605
610
 
606
611
  # See if we can handle repeat lines in with regular ones
607
612
  def test_thirteen
608
- puts "test 13"
609
613
  f = []
610
614
  f.push( '<?xml version="1.0"?>' )
611
615
  f.push( '~~^<<< TEST1' )
@@ -619,13 +623,14 @@ class FormatTester < Test::Unit::TestCase
619
623
 
620
624
  format = Format.new(f)
621
625
  0.upto(1) do |x|
626
+ file = StringIO.new
622
627
  format.useHash(x == 0)
623
- helper_test_thirteen(format, "format_testfile13-#{x}")
628
+ helper_test_thirteen(format, file)
624
629
  end
625
630
 
626
631
  end
627
632
 
628
- def helper_test_fourteen (body_fmt, file_name)
633
+ def helper_test_fourteen (body_fmt, file)
629
634
  one = "FIVE"
630
635
  val1 = one.clone
631
636
  two = "ONE"
@@ -634,19 +639,17 @@ class FormatTester < Test::Unit::TestCase
634
639
  var_exp = 3.44e10
635
640
  change = ["Yip", "Yie", "Yoo"]
636
641
 
637
- File.open(file_name,
638
- File::CREAT | File::WRONLY | File::TRUNC) { |file|
639
- body_fmt.io = file
640
-
641
- 3.times do |i|
642
+ body_fmt.io = file
643
+
644
+ 3.times do |i|
642
645
  val2 = change[i].clone
643
- body_fmt.printFormat(binding)
644
- end
645
- }
646
+ body_fmt.printFormat(binding)
647
+ end
648
+
649
+ #save the output for later
650
+ file.rewind
651
+ output = file.readlines
646
652
 
647
- #save the output for later
648
- output = IO.readlines(file_name)
649
- File.delete(file_name) unless (@@keep)
650
653
  reader = FormatReader.new(body_fmt)
651
654
  loops = 0
652
655
  reader.readFormat(output) do |vals|
@@ -663,7 +666,6 @@ class FormatTester < Test::Unit::TestCase
663
666
 
664
667
  # See if we can handle repeat lines in with regular ones
665
668
  def test_fourteen
666
- puts "test 14"
667
669
  f = []
668
670
  f.push( '<?xml version="1.0"?>' )
669
671
  f.push( '@<<< TEST1' )
@@ -678,13 +680,13 @@ class FormatTester < Test::Unit::TestCase
678
680
  format = Format.new(f)
679
681
  0.upto(1) do |x|
680
682
  format.useHash(x == 0)
681
- helper_test_fourteen(format, "format_testfile14-#{x}")
683
+ file = StringIO.new
684
+ helper_test_fourteen(format, file)
682
685
  end
683
686
  end
684
687
 
685
688
  # See if we can handle repeat lines in with regular ones
686
689
  def test_fifteen
687
- puts "test 15"
688
690
  f = []
689
691
  f.push('@>>>>>>>>>>>>>> ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<')
690
692
  f.push('author, quote')
@@ -696,26 +698,26 @@ class FormatTester < Test::Unit::TestCase
696
698
  authors = []
697
699
  quotes = []
698
700
  format = Format.new(f)
699
- file_name = "format_testfile15"
700
- File.open(file_name,
701
- File::CREAT | File::WRONLY | File::TRUNC) do |file|
702
- format.io = file
703
- author = "Robert Frost"
704
- authors[0] = author
705
- quote = "Whose woods these are I think I know His house is" +
706
- " by the village, though ... But I have promises to keep " +
707
- "And miles to go before I sleep."
708
- quotes[0] = quote
709
- format.printFormat(binding)
710
- author = "Bill"
711
- authors[1] = author
712
- quote = "Shall I compare thee to a Summer's day and branch if the result is negative?"
713
- quotes[1] = quote
714
- format.printFormat(binding)
715
- end
701
+ file = StringIO.new
702
+ format.io = file
703
+ author = "Robert Frost"
704
+ authors[0] = author
705
+ quote = "Whose woods these are I think I know His house is" +
706
+ " by the village, though ... But I have promises to keep " +
707
+ "And miles to go before I sleep."
708
+ quotes[0] = quote
709
+ format.printFormat(binding)
710
+ author = "Bill"
711
+ authors[1] = author
712
+ quote = "Shall I compare thee to a Summer's day and " +
713
+ "branch if the result is negative?"
714
+ quotes[1] = quote
715
+ format.printFormat(binding)
716
+
717
+ file.rewind
716
718
 
717
719
  #save the output for later
718
- output = IO.readlines(file_name)
720
+ output = file.readlines
719
721
 
720
722
  reader = FormatReader.new(format)
721
723
  loops = 0
@@ -724,7 +726,9 @@ class FormatTester < Test::Unit::TestCase
724
726
  assert(vals["quote"] = quotes[loops])
725
727
  loops += 1
726
728
  end
727
- assert(compareOutput(file_name,
729
+
730
+ file.rewind
731
+ assert(compareOutput(file,
728
732
  "./format_test.pl 15", nil))
729
733
 
730
734
  end
@@ -732,7 +736,8 @@ class FormatTester < Test::Unit::TestCase
732
736
  # show that page numbers are fixed on the top and bottom
733
737
  def test_page_numbers
734
738
  #Problems when formats don't fit on a single page!
735
- File.open("format_testfile14", File::CREAT | File::WRONLY | File::TRUNC) { |file|
739
+ file = StringIO.new
740
+
736
741
  top = "---- Top --- Page Number @<<<----\n$page_number\n"
737
742
  bottom = "---- Bot --- Page Number @<<<----\n$page_number\n \n"
738
743
  page_num_format = Format.new(top,$ex, bottom)
@@ -749,9 +754,10 @@ class FormatTester < Test::Unit::TestCase
749
754
  num = page_num_format.pageNumber()
750
755
  toe_size = page_num_format.pageNumber()
751
756
  end
752
- }
753
- assert(compareOutput("format_testfile14", "./format_test.pl 13", nil))
754
- end
757
+
758
+ file.rewind
759
+ assert(compareOutput(file,
760
+ "./format_test.pl 13", nil)) end
755
761
 
756
762
 
757
763
  end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: formatr
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.10.0
7
- date: 2008-01-24 00:00:00 -05:00
6
+ version: 1.10.1
7
+ date: 2008-02-12 00:00:00 -05:00
8
8
  summary: A library to read and write Perl-like formats
9
9
  require_paths:
10
10
  - lib