class SFRP::Output::Set

Attributes

virtual_files[R]

Public Class Methods

new(&block) click to toggle source
# File lib/sfrp/output/set.rb, line 9
def initialize(&block)
  @virtual_files = []
  block.call(self) if block
end

Public Instance Methods

create_file(relative_position, file_ext, content) click to toggle source
# File lib/sfrp/output/set.rb, line 28
def create_file(relative_position, file_ext, content)
  @virtual_files << VirtualFile.new(relative_position, file_ext, content)
end
generate!(output_dir_path, other_virtual_files = []) click to toggle source
# File lib/sfrp/output/set.rb, line 14
def generate!(output_dir_path, other_virtual_files = [])
  unless File.directory?(output_dir_path)
    FileUtils.mkdir_p(output_dir_path)
  end
  FileUtils.cd(output_dir_path) do
    (@virtual_files + other_virtual_files).each do |vf|
      relative_path = vf.fmodule_uri.gsub('.', '/') + '.' + vf.file_ext
      dirname = File.dirname(relative_path)
      FileUtils.mkdir_p(dirname) unless File.directory?(dirname)
      File.open(relative_path, 'w') { |f| f.write(vf.content) }
    end
  end
end