Sha256: 5ac7a058bc590e0acdb115917c04eeeeb55b77a1abf186e0296ae8c916286857

Contents?: true

Size: 1010 Bytes

Versions: 17

Compression:

Stored size: 1010 Bytes

Contents

command 'write' do |c|
  c.syntax = 'brief write MODEL_TYPE [OPTIONS]'
  c.description = 'Create a new document for a given model type'

  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

    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")

    if file.to_s.length == 0
      rand_token = rand(36**36).to_s(36).slice(0,6)
      file = "new-#{ type_alias }-#{ rand_token }.md"
    end

    folder = Brief.case(true).docs_path.join(type_alias.pluralize)
    folder = folder.exist? ? folder : Brief.case.docs_path

    folder.join(file).open("w+") do |fh|
      fh.write(content)
    end

    puts "== Successfully created #{ folder.join(file) }"
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
brief-1.11.6 lib/brief/cli/write.rb
brief-1.11.5 lib/brief/cli/write.rb
brief-1.11.4 lib/brief/cli/write.rb
brief-1.11.3 lib/brief/cli/write.rb
brief-1.11.2 lib/brief/cli/write.rb
brief-1.11.1 lib/brief/cli/write.rb
brief-1.11.0 lib/brief/cli/write.rb
brief-1.10.1 lib/brief/cli/write.rb
brief-1.10.0 lib/brief/cli/write.rb
brief-1.9.14 lib/brief/cli/write.rb
brief-1.9.13 lib/brief/cli/write.rb
brief-1.9.12 lib/brief/cli/write.rb
brief-1.9.11 lib/brief/cli/write.rb
brief-1.9.9 lib/brief/cli/write.rb
brief-1.9.8 lib/brief/cli/write.rb
brief-1.9.7 lib/brief/cli/write.rb
brief-1.9.6 lib/brief/cli/write.rb