lib/brief/cli/write.rb in brief-1.11.6 vs lib/brief/cli/write.rb in brief-1.11.7
- old
+ new
@@ -1,16 +1,30 @@
command 'write' do |c|
c.syntax = 'brief write MODEL_TYPE [OPTIONS]'
c.description = 'Create a new document for a given model type'
+ # TODO
+ # We could potential query the available model classes we are aware of
+ # and determine which CLI arguments those model classes may ask for.
c.action do |args, options|
schema_map = Brief.case(true).schema_map(true)
type_alias = args.first
model_class = schema_map.fetch(type_alias) do
raise "Unknown model type: #{ type_alias }. Available types are: #{ schema_map.keys.join(',') }"
end
+ # TODO
+ #
+ # We need to determine the initial content that gets put into the editor.
+ #
+ # Our options are:
+ #
+ # - use an example from the model, if one exists
+ # - deduce the content to use based on some combination of one or more of the items below:
+ # - specifics of the model
+ # - the state of the documents that exist for that model already
+ # - the arguments from the CLI
default_example = "---\ntype:#{type_alias}\n---\n\n# Enter some content"
content = ask_editor(model_class.to_mash.example || default_example)
file = ask("Enter a filename")