class Temill::Emitters::DirectoryEmitter

Public Class Methods

new(dir_path, options) click to toggle source
Calls superclass method Temill::Emitters::Base::new
# File lib/temill/emitter.rb, line 74
def initialize(dir_path, options)
  @dir_path = Pathname.new(dir_path)
  super(options)
end

Public Instance Methods

execute(source_files) click to toggle source
# File lib/temill/emitter.rb, line 79
def execute(source_files)
  FileUtils.makedirs(@dir_path)
  written = []
  source_files.each{| sf |
    fname = output_fname(sf.path, written)
    File.open(fname, 'w'){| f |
      emit_for_source_file(sf, f)
      written << fname
    }
  }
  nil
end
output_fname(base_fname, written) click to toggle source
# File lib/temill/emitter.rb, line 92
def output_fname(base_fname, written)
  fname_base = (@dir_path + File.basename(base_fname)).to_s
  current_fname = fname_base
  suffix_n = 1
  while written.include?(current_fname)
    current_fname = fname_base + ".#{suffix_n}"
    suffix_n += 1
  end
  current_fname
end