Method: Doing::Completion.generate_completion

Defined in:
lib/doing/completion.rb

.generate_completion(type: 'zsh', file: :default, link: true) ⇒ Object

Generate a completion script and output to file or stdout

Parameters:

  • type (String) (defaults to: 'zsh')

    shell to generate for (zsh|bash|fish)

  • file (String) (defaults to: :default)

    Path to save to, or 'stdout'



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/doing/completion.rb', line 68

def generate_completion(type: 'zsh', file: :default, link: true)
  return generate_all if type =~ /^all$/i

  file = file == :default ? default_file(type) : file
  file = validate_target(file)
  result = generate_type(type)

  if file =~ /^stdout$/i
    $stdout.puts result
  else
    File.open(file, 'w') { |f| f.puts result }
    Doing.logger.warn('File written:', "#{type} completions written to #{file}")

    link_completion_type(type, file) if link
  end
end