class Nanoc::CLI::Commands::CreateSite
Constants
- DEFAULT_CONFIG
- DEFAULT_ITEM
- DEFAULT_LAYOUT
- DEFAULT_RULES
- DEFAULT_STYLESHEET
Protected Class Methods
array_to_yaml(array)
click to toggle source
Converts the given array to YAML format
# File lib/nanoc/cli/commands/create-site.rb, line 13 def array_to_yaml(array) '[ ' + array.map { |s| "'" + s + "'" }.join(', ') + ' ]' end
Public Instance Methods
run()
click to toggle source
# File lib/nanoc/cli/commands/create-site.rb, line 296 def run # Extract arguments if arguments.length != 1 raise Nanoc::Int::Errors::GenericTrivial, "usage: #{command.usage}" end path = arguments[0] # Check whether site exists if File.exist?(path) && (!File.directory?(path) || !(Dir.entries(path) - %w(. ..)).empty?) && !options[:force] raise( Nanoc::Int::Errors::GenericTrivial, "The site was not created because '#{path}' already exists. " 'Re-run the command using --force to create the site anyway.', ) end # Setup notifications Nanoc::Int::NotificationCenter.on(:file_created) do |file_path| Nanoc::CLI::Logger.instance.file(:high, :create, file_path) end # Build entire site FileUtils.mkdir_p(path) FileUtils.cd(File.join(path)) do FileUtils.mkdir_p('content') FileUtils.mkdir_p('layouts') FileUtils.mkdir_p('lib') FileUtils.mkdir_p('output') write('nanoc.yaml', DEFAULT_CONFIG) write('Rules', DEFAULT_RULES) write('content/index.html', DEFAULT_ITEM) write('content/stylesheet.css', DEFAULT_STYLESHEET) write('layouts/default.html', DEFAULT_LAYOUT) end puts "Created a blank nanoc site at '#{path}'. Enjoy!" end
Private Instance Methods
write(filename, content)
click to toggle source
# File lib/nanoc/cli/commands/create-site.rb, line 337 def write(filename, content) File.write(filename, content) Nanoc::Int::NotificationCenter.post(:file_created, filename) end