diff --git a/lib/jekyll/commands/new.rb b/lib/jekyll/commands/new.rb index c87aebcb..dc71545f 100644 --- a/lib/jekyll/commands/new.rb +++ b/lib/jekyll/commands/new.rb @@ -3,21 +3,21 @@ require 'erb' module Jekyll module Commands class New < Command - + def self.process(args) - path = File.expand_path(args.join(" "), Dir.pwd) - template_site = File.expand_path("../../site_template", File.dirname(__FILE__)) - FileUtils.mkdir_p path - sample_files = Dir["#{template_site}/**/*"].reject {|f| File.extname(f) == ".erb"} - FileUtils.cp_r sample_files, path - File.open(File.expand_path(self.initialized_post_name, path), "w") do |f| + new_blog_path = File.expand_path(args.join(" "), Dir.pwd) + FileUtils.mkdir_p new_blog_path + + create_sample_files! new_blog_path + + File.open(File.expand_path(self.initialized_post_name, new_blog_path), "w") do |f| f.write(self.scaffold_post_content(template_site)) end - puts "New jekyll site installed in #{path}." + puts "New jekyll site installed in #{new_blog_path}." end def self.scaffold_post_content(template_site) - ERB.new(File.read(File.expand_path("_posts/0000-00-00-sample_post.markdown.erb", template_site))).result + ERB.new(File.read(File.expand_path(scaffold_path, template_site))).result end # Internal: Gets the filename of the sample post to be created @@ -26,6 +26,25 @@ module Jekyll def self.initialized_post_name "_posts/#{Time.now.strftime('%Y-%m-%d')}-welcome-to-jekyll.markdown" end + + private + + def self.create_sample_files!(path) + FileUtils.cp_r sample_files, path + FileUtils.rm File.expand_path(scaffold_path, path) + end + + def self.sample_files + Dir.glob("#{template_site}/**/*") + end + + def self.template_site + File.expand_path("../../site_template", File.dirname(__FILE__)) + end + + def self.scaffold_path + "_posts/0000-00-00-sample_post.markdown.erb" + end end end end