class Jekyll::Commands::ComposeCommand
Public Class Methods
init_with_program(prog)
click to toggle source
# File lib/jekyll/commands/compose.rb, line 6 def self.init_with_program(prog) prog.command(:compose) do |c| c.syntax "compose NAME" c.description "Creates a new document with the given NAME" options.each { |opt| c.option(*opt) } c.action { |args, options| process(args, options) } end end
options()
click to toggle source
# File lib/jekyll/commands/compose.rb, line 17 def self.options [ ["extension", "-x EXTENSION", "--extension EXTENSION", "Specify the file extension"], ["layout", "-l LAYOUT", "--layout LAYOUT", "Specify the document layout"], ["force", "-f", "--force", "Overwrite a document if it already exists"], ["date", "-d DATE", "--date DATE", "Specify the document date"], ["collection", "-c COLLECTION", "--collection COLLECTION", "Specify the document collection"], ["post", "--post", "Create a new post (default)"], ["draft", "--draft", "Create a new draft"], ["config", "--config CONFIG_FILE[,CONFIG_FILE2,...]", Array, "Custom configuration file"], ] end
process(args = [], options = {})
click to toggle source
# File lib/jekyll/commands/compose.rb, line 30 def self.process(args = [], options = {}) config = configuration_from_options(options) params = ComposeCommandArgParser.new(args, options, config) params.validate! document = ComposeCommandFileInfo.new(params) file_creator = Compose::FileCreator.new(document, params.force?, params.source) file_creator.create! Compose::FileEditor.bootstrap(config) Compose::FileEditor.open_editor(file_creator.file_path) end