Class: SFRP::Output::Set

Inherits:
Object
  • Object
show all
Defined in:
lib/sfrp/output/set.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ Set

Returns a new instance of Set.



9
10
11
12
# File 'lib/sfrp/output/set.rb', line 9

def initialize(&block)
  @virtual_files = []
  block.call(self) if block
end

Instance Attribute Details

#virtual_filesObject (readonly)

Returns the value of attribute virtual_files.



7
8
9
# File 'lib/sfrp/output/set.rb', line 7

def virtual_files
  @virtual_files
end

Instance Method Details

#create_file(relative_position, file_ext, content) ⇒ Object



28
29
30
# 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 = []) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
# 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