class Pione::Util::BashCompletion

Public Class Methods

new() click to toggle source
# File lib/pione/util/completion.rb, line 41
def initialize
  @completion_command = "complete"
  @completion_exec = "complete -F"
  @name2 = "${COMP_WORDS[1]}"
  @name3 = "${COMP_WORDS[2]}"
end

Public Instance Methods

fun_options(cmd) click to toggle source
# File lib/pione/util/completion.rb, line 52
def fun_options(cmd)
  compreply(make_options(cmd))
end
fun_subcommands(cmd) click to toggle source
# File lib/pione/util/completion.rb, line 48
def fun_subcommands(cmd)
  compreply(make_subcommands(cmd))
end

Private Instance Methods

compreply(options) click to toggle source
# File lib/pione/util/completion.rb, line 58
def compreply(options)
  'COMPREPLY=($(compgen -W "%s" -- "${COMP_WORDS[COMP_CWORD]}"));' % options
end
make_options(cmd) click to toggle source
# File lib/pione/util/completion.rb, line 66
def make_options(cmd)
  items = cmd.option_definition.table.values
  items.sort{|a, b| a.long <=> b.long}.map{|item| item.long}.join(" ")
end
make_subcommands(cmd) click to toggle source
# File lib/pione/util/completion.rb, line 62
def make_subcommands(cmd)
  cmd.subcommand.keys.join(" ")
end