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
25
26
27
28
29
# 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
  template = File.read(template_file)
  erb_obj = if RUBY_VERSION >= '2.7'
              ERB.new(template, trim_mode: '-')
            else
              ERB.new(template, nil, '-')
            end
  erb_obj.filename = template_file
  erb_obj.def_method(ForgeModuleFile, 'render()', template_file)
  erb_obj
end

.remove(file) ⇒ Object



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

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

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



35
36
37
# File 'lib/modulesync/renderer.rb', line 35

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

.sync(template, target_name) ⇒ Object



39
40
41
42
# File 'lib/modulesync/renderer.rb', line 39

def self.sync(template, target_name)
  FileUtils.mkdir_p(File.dirname(target_name))
  File.write(target_name, template)
end