class Dupler::Core

Public Instance Methods

apply_template(template_path, config) click to toggle source
# File lib/dupler/core.rb, line 45
def apply_template(template_path, config)
  template = Tilt.new(template_path)
  output = template.render(self, config)
end
build(values_file_path, output_dir, template_files) click to toggle source
# File lib/dupler/core.rb, line 24
def build(values_file_path, output_dir, template_files)
  yaml = YAML.load File.read(values_file_path)

  setup(yaml)
  yaml.delete("Dupler")
  config = Hashie::Mash.new yaml
  FileUtils.mkdir_p output_dir

  template_files.each do |path|
    output_filename = File.basename(path, File.extname(path))
    output_filepath = File.join(output_dir, output_filename)
    render(path, config, output_filepath)
  end
end
new_project(project_name) click to toggle source
# File lib/dupler/core.rb, line 9
def new_project(project_name)
  FileUtils.mkdir_p project_name
  project_template_dir = Dir.glob File.join(Dupler::home, "project_template/*")
  FileUtils.cp_r(project_template_dir, project_name)
end
output_file(filepath, content) click to toggle source
# File lib/dupler/core.rb, line 50
def output_file(filepath, content)
  File.open(filepath, "w") do |file|
    file.write content
  end
end
render(template_path, config, output_filepath) click to toggle source
# File lib/dupler/core.rb, line 39
def render(template_path, config, output_filepath)
  content = apply_template(template_path, config)
  output_file(output_filepath, content)
  puts "render: #{output_filepath}"
end
setup(config) click to toggle source
# File lib/dupler/core.rb, line 15
def setup(config)
  formats = config.dig("Dupler", "time", "format")
  if formats
    formats.each do |key, value|
        Time::DATE_FORMATS[key.to_sym] = value
    end
  end
end