Class: Jkr::AnalysisUtils

Inherits:
Object
  • Object
show all
Defined in:
lib/jkr/utils.rb

Class Method Summary collapse

Class Method Details

.define_analysis_utils(resultset_dir, plan) ⇒ Object



411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
# File 'lib/jkr/utils.rb', line 411

def self.define_analysis_utils(resultset_dir, plan)
  line = __LINE__; src = <<EOS
def resultset()
  dirs = Dir.glob(File.join(#{resultset_dir.inspect}, "*"))
  dirs.map{|dir| File.basename dir}.select{|basename|
basename =~ /\\A\\d{3,}\\Z/
  }
end

def result_file_name(num, basename)
  if num.is_a? Integer
num = sprintf "%03d", num
  end
  File.join(#{resultset_dir.inspect}, num, basename)
end

def result_file(num, basename, mode = "r")
  path = result_file_name(num, basename)
  File.open(path, mode)
end

def common_file_name(basename)
  File.join(#{resultset_dir.inspect}, basename)
end

def common_file(basename, mode = "r")
  path = common_file_name(basename)
  File.open(path, mode)
end

def with_common_file(basename, mode = "r")
  file = common_file(basename, mode)
  err = nil
  begin
yield(file)
  rescue Exception => e
err = e
  end
  file.close
  raise err if err
  file.path
end

def with_result_file(basename, mode = "r")
  file = result_file(basename, mode)
  err = nil
  begin
yield(file)
  rescue Exception => e
err = e
  end
  file.close
  raise err if err
  file.path
end
EOS
  plan.routine.binding.eval(src, __FILE__, line)
end

.undef_analysis_utils(plan) ⇒ Object



399
400
401
402
403
404
405
406
407
408
409
# File 'lib/jkr/utils.rb', line 399

def self.undef_analysis_utils(plan)
  plan.analysis.binding.eval <<EOS
undef resultset
undef result_file
undef result_file_name
undef with_result_file
undef common_file
undef common_file_name
undef with_common_file
EOS
end