Module: ModuleSync::Renderer

Defined in:
lib/modulesync/renderer.rb

Defined Under Namespace

Classes: ForgeModuleFile

Class Method Summary collapse

Class Method Details

.build(target_name) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/modulesync/renderer.rb', line 12

def self.build(target_name)
  template_file = if !File.exist?("#{target_name}.erb") && File.exist?(target_name)
                    STDERR.puts "Warning: using '#{target_name}' as template without '.erb' suffix"
                    target_name
                  else
                    "#{target_name}.erb"
                  end
  erb_obj = ERB.new(File.read(template_file), nil, '-')
  erb_obj.filename = template_file
  erb_obj.def_method(ForgeModuleFile, 'render()', template_file)
  erb_obj
end

.remove(file) ⇒ Object



25
26
27
# File 'lib/modulesync/renderer.rb', line 25

def self.remove(file)
  File.delete(file) if File.exist?(file)
end

.render(_template, configs = {}) ⇒ Object



29
30
31
# File 'lib/modulesync/renderer.rb', line 29

def self.render(_template, configs = {})
  ForgeModuleFile.new(configs).render
end

.sync(template, target_name) ⇒ Object



33
34
35
36
37
38
39
# File 'lib/modulesync/renderer.rb', line 33

def self.sync(template, target_name)
  path = target_name.rpartition('/').first
  FileUtils.mkdir_p(path) unless path.empty?
  File.open(target_name, 'w') do |file|
    file.write(template)
  end
end