class Application::FSBuilder

Attributes

project_name[R]
template[R]

Public Class Methods

new(project_name, template) click to toggle source
# File lib/makegit/fs_builder.rb, line 5
def initialize(project_name, template)
        @project_name = project_name
        @template = template || "bare"
end

Public Instance Methods

bare() click to toggle source
# File lib/makegit/fs_builder.rb, line 20
def bare
        STDOUT.puts "Building a bare project template"
        Dir.mkdir(project_name)
        Dir.chdir(project_name) do
                File.open("README.md", "w"){ |f| f.puts "\# #{project_name}"}
        end
end
build() click to toggle source
# File lib/makegit/fs_builder.rb, line 10
def build
        if template == "bare"
                bare
        elsif template == "rubygem"
                rubygem
        else
                raise ArgumentError, "Could not find a template to build"
        end
end
rubygem() click to toggle source
# File lib/makegit/fs_builder.rb, line 28
def rubygem
        STDOUT.puts "Building a RubyGem project template"
        Dir.mkdir(project_name)
        Dir.chdir(project_name) do
                File.open("#{project_name}.gemspec", "w"){ |f| 
                        f << "Gem::Specification.new do |s|\n"
                        f << "\ts.name        = \'\'\n"
                        f << "\ts.version     = \'\'\n"
                        f << "\ts.date        = \'\'\n"
                        f << "\ts.summary     = \'\'\n"
                        f << "\ts.description = \'\'\n"
                        f << "\ts.authors     = \'[]\'\n"
                        f << "\ts.email       = \'\'\n"
                        f << "\ts.files       = \'[]\'\n"
                        f << "\ts.executables << \'#{project_name}\'\n"
                        f << "\ts.homepage    = \'\'\n"
                        f << "\ts.license     = \'\'\n"
                        f << "end"
                }
                File.open("Rakefile", "w")
                File.open("README.md", "w"){ |f| f.puts "\# #{project_name}: A RubyGem"}

                Dir.mkdir("bin")
                Dir.chdir("bin") do
                        File.open(project_name, "w"){ |f| f.puts "\#!/usr/bin/env ruby"}
                end

                Dir.mkdir("lib")
                Dir.chdir("lib") do
                        File.open("#{project_name}.rb", "w")
                end

                Dir.mkdir("test")
                Dir.chdir("test") do
                        File.open("test_#{project_name}.rb", "w")
                end
        end
end