class GGem::Template

Public Class Methods

new(ggem) click to toggle source
# File lib/ggem/template.rb, line 9
def initialize(ggem)
  @ggem = ggem
end

Public Instance Methods

save() click to toggle source
# File lib/ggem/template.rb, line 13
def save
  save_folder # (gem root path)
  save_folder "lib/#{@ggem.ruby_name}"
  save_folder "test/support"
  save_folder "test/system"
  save_folder "test/unit"
  save_folder "log"
  save_folder "tmp"

  save_file("l.yml.erb",        ".l.yml")
  save_file("t.yml.erb",        ".t.yml")
  save_file("rubocop.yml.erb",  ".rubocop.yml")
  save_file("ruby-version.erb", ".ruby-version")
  save_file("gitignore.erb",    ".gitignore")
  save_file("Gemfile.erb",      "Gemfile")
  save_file("gemspec.erb",      "#{@ggem.name}.gemspec")
  save_file("README.md.erb",    "README.md")
  save_file("LICENSE.erb",      "LICENSE")

  save_file("lib.rb.erb",         "lib/#{@ggem.ruby_name}.rb")
  save_file("lib_version.rb.erb", "lib/#{@ggem.ruby_name}/version.rb")

  save_file("test_helper.rb.erb",          "test/helper.rb")
  save_file("test_support_factory.rb.erb", "test/support/factory.rb")

  save_empty_file("log/.keep")
  save_empty_file("test/system/.keep")
  save_empty_file("test/unit/.keep")
  save_empty_file("tmp/.keep")
end

Private Instance Methods

save_empty_file(relative_path) click to toggle source
# File lib/ggem/template.rb, line 51
def save_empty_file(relative_path)
  path = File.join(@ggem.path, relative_path)
  FileUtils.touch(path)
end
save_file(source, output) click to toggle source
# File lib/ggem/template.rb, line 56
def save_file(source, output)
  source_file = File.join(File.dirname(__FILE__), "template_file", source)
  output_file = File.join(@ggem.root_path, @ggem.name, output)

  if File.exist?(source_file)
    FileUtils.mkdir_p(File.dirname(output_file))
    erb = ERB.new(File.read(source_file))
    File.open(output_file, "w"){ |f| f << erb.result(binding) }
  else
    raise ArgumentError, "the source file `#{source_file}` does not exist"
  end
end
save_folder(relative_path = nil) click to toggle source
# File lib/ggem/template.rb, line 46
def save_folder(relative_path = nil)
  path = File.join([@ggem.path, relative_path].compact)
  FileUtils.mkdir_p(path)
end