class Asteroid::Generator
Public Class Methods
new(project_root)
click to toggle source
# File lib/asteroid/generator.rb, line 16 def initialize(project_root) @project_root = File.expand_path project_root end
Public Instance Methods
cp(from, to)
click to toggle source
# File lib/asteroid/generator.rb, line 86 def cp(from, to) if File.directory?(to) to = File.join(to, File.basename(from)) end if File.exists?(to) puts "exists\t#{to}" else puts "add\t#{to}" FileUtils.cp from, to end end
cp_erb(from, to, data)
click to toggle source
# File lib/asteroid/generator.rb, line 70 def cp_erb(from, to, data) if File.directory?(to) to = File.join(to, File.basename(from)) end if File.exists?(to) puts "exists\t#{to}" else puts "add\t#{to}" template_string = File.read from template = Template.new(:erb, template_string) File.open(to, 'w') do |f| f.write template.render data end end end
g(*paths)
click to toggle source
# File lib/asteroid/generator.rb, line 7 def g(*paths) @gen_root ||= File.expand_path File.join File.dirname(__FILE__), '../../generator' File.join *([@gen_root] + paths) end
generate!()
click to toggle source
# File lib/asteroid/generator.rb, line 20 def generate! c = Asteroid::Config.default_config(@project_root) c[:asteroid_dir] mkdir p cp g('/README.md'), p cp g('/gitignore'), p('/.gitignore') cp g('/Rakefile'), p mkdir c[:asteroid_dir] mkdir c[:file_dir] mkdir c[:script_dir] mkdir c[:server_dir] cp g('/asteroid/servers/default.yml'), c[:server_dir] mkdir c[:config_dir] cp_erb g('/config/asteroid.rb'), c[:config_dir], { name: File.basename(@project_root) } mkdir c[:secret_dir] touch File.join(c[:secret_dir], '.keep') mkdir c[:secret_config_dir] touch File.join(c[:secret_config_dir], '.keep') cp g('/secrets/config/providers.rb'), c[:secret_provider_file] cp g('/secrets/config/secrets.yml'), c[:secret_config_file] mkdir c[:secret_file_dir] touch File.join(c[:secret_file_dir], '.keep') mkdir c[:secret_script_dir] touch File.join(c[:secret_script_dir], '.keep') mkdir c[:secret_key_dir] touch File.join(c[:secret_key_dir], '.keep') end
mkdir(directory)
click to toggle source
# File lib/asteroid/generator.rb, line 61 def mkdir(directory) if File.directory?(directory) puts "exists\t#{directory}" else puts "mkdir\t#{directory}" FileUtils.mkdir directory end end
p(*paths)
click to toggle source
# File lib/asteroid/generator.rb, line 12 def p(*paths) File.join *([@project_root] + paths) end
touch(file)
click to toggle source
# File lib/asteroid/generator.rb, line 98 def touch(file) if File.exists?(file) puts "exists\t#{file}" else puts "touch\t#{file}" FileUtils.touch file end end