Refactor Commands::New a bit and remove scaffold post once copied.

This commit is contained in:
Jonathan Roes 2013-03-12 00:48:22 -04:00
parent b71ec624f8
commit 7a86d901f1
1 changed files with 28 additions and 9 deletions

View File

@ -3,21 +3,21 @@ require 'erb'
module Jekyll module Jekyll
module Commands module Commands
class New < Command class New < Command
def self.process(args) def self.process(args)
path = File.expand_path(args.join(" "), Dir.pwd) new_blog_path = File.expand_path(args.join(" "), Dir.pwd)
template_site = File.expand_path("../../site_template", File.dirname(__FILE__)) FileUtils.mkdir_p new_blog_path
FileUtils.mkdir_p path
sample_files = Dir["#{template_site}/**/*"].reject {|f| File.extname(f) == ".erb"} create_sample_files! new_blog_path
FileUtils.cp_r sample_files, path
File.open(File.expand_path(self.initialized_post_name, path), "w") do |f| File.open(File.expand_path(self.initialized_post_name, new_blog_path), "w") do |f|
f.write(self.scaffold_post_content(template_site)) f.write(self.scaffold_post_content(template_site))
end end
puts "New jekyll site installed in #{path}." puts "New jekyll site installed in #{new_blog_path}."
end end
def self.scaffold_post_content(template_site) 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 end
# Internal: Gets the filename of the sample post to be created # Internal: Gets the filename of the sample post to be created
@ -26,6 +26,25 @@ module Jekyll
def self.initialized_post_name def self.initialized_post_name
"_posts/#{Time.now.strftime('%Y-%m-%d')}-welcome-to-jekyll.markdown" "_posts/#{Time.now.strftime('%Y-%m-%d')}-welcome-to-jekyll.markdown"
end 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 end
end end