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



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

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



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

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

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



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

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

.sync(template, target_name) ⇒ Object



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

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